update tcp.go

This commit is contained in:
Jason
2019-08-11 21:07:06 +08:00
parent d571cbef78
commit 6d50f90315
2 changed files with 11 additions and 2 deletions

View File

@@ -52,13 +52,15 @@ func (h *tcpHandler) relay(localConn, remoteConn net.Conn) {
// Up Link // Up Link
go func() { go func() {
io.Copy(remoteConn, localConn) io.Copy(remoteConn, localConn)
//closeOnce() tcpCloseRead(localConn)
tcpCloseWrite(remoteConn)
wg.Done() wg.Done()
}() }()
// Down Link // Down Link
io.Copy(localConn, remoteConn) io.Copy(localConn, remoteConn)
tcpCloseRead(localConn) tcpCloseRead(remoteConn)
tcpCloseWrite(localConn)
wg.Wait() // Wait for Up Link done wg.Wait() // Wait for Up Link done

View File

@@ -20,6 +20,13 @@ func tcpCloseRead(conn net.Conn) {
} }
} }
func tcpCloseWrite(conn net.Conn) {
if c, ok := conn.(duplexConn); ok {
log.Warnf("ok!++++")
c.CloseWrite()
}
}
func tcpKeepAlive(conn net.Conn) { func tcpKeepAlive(conn net.Conn) {
if tcp, ok := conn.(*net.TCPConn); ok { if tcp, ok := conn.(*net.TCPConn); ok {
tcp.SetKeepAlive(true) tcp.SetKeepAlive(true)