1.加了TunnelPair

2.只注销一次
This commit is contained in:
dmy@lab
2016-01-14 21:58:41 +08:00
parent 731d320fa2
commit 1e61d0d9eb
4 changed files with 74 additions and 24 deletions

View File

@@ -77,31 +77,39 @@ func (this *TransTCP) Start(listenPort, destIP, destPort string, clientOrServer
}
log.Info("Dial %s", destConn.RemoteAddr().String())
//tunnel model : [ -->>server ---- client -->> ](this is a tunnel)
if clientOrServer == "client" {
if clientOrServer == "client" { //加密方向
sendID := utils.TunnelID()
ntSend := model.NewTunnel(sendID, listenerConn, destConn, constant.SEND)
ntSend.SetRegChan(tunMng.GetRegChan())
ntSend.SetUnRegChan(tunMng.GetUnregChan())
// ntSend.SetRegChan(tunMng.GetRegChan())
// ntSend.SetUnRegChan(tunMng.GetUnregChan())
receiveID := utils.TunnelID()
ntRev := model.NewTunnel(receiveID, destConn, listenerConn, constant.RECEIVE)
ntRev.SetRegChan(tunMng.GetRegChan())
ntRev.SetUnRegChan(tunMng.GetUnregChan())
// ntRev.SetRegChan(tunMng.GetRegChan())
// ntRev.SetUnRegChan(tunMng.GetUnregChan())
printModelDetail(sendID, receiveID)
go ntSend.Run()
go ntRev.Run()
// go ntSend.Run()
// go ntRev.Run()
tunnelPair := model.NewTunnelPair(ntSend, ntRev)
tunnelPair.SetRegChan(tunMng.GetRegChan())
tunnelPair.SetUnRegChan(tunMng.GetUnregChan())
tunnelPair.Run()
}
if clientOrServer == "server" {
receiveID := utils.TunnelID()
ntRev := model.NewTunnel(receiveID, listenerConn, destConn, constant.RECEIVE)
ntRev.SetRegChan(tunMng.GetRegChan())
ntRev.SetUnRegChan(tunMng.GetUnregChan())
// ntRev.SetRegChan(tunMng.GetRegChan())
// ntRev.SetUnRegChan(tunMng.GetUnregChan())
sendID := utils.TunnelID()
ntSend := model.NewTunnel(sendID, destConn, listenerConn, constant.SEND)
ntSend.SetRegChan(tunMng.GetRegChan())
ntSend.SetUnRegChan(tunMng.GetUnregChan())
// ntSend.SetRegChan(tunMng.GetRegChan())
// ntSend.SetUnRegChan(tunMng.GetUnregChan())
printModelDetail(sendID, receiveID)
go ntRev.Run()
go ntSend.Run()
// go ntRev.Run()
// go ntSend.Run()
tunnelPair := model.NewTunnelPair(ntSend, ntRev)
tunnelPair.SetRegChan(tunMng.GetRegChan())
tunnelPair.SetUnRegChan(tunMng.GetUnregChan())
tunnelPair.Run()
}
}()