连接bug修复

This commit is contained in:
刘河 2018-11-30 01:13:41 +08:00
parent a32010fcc0
commit 86deb2025f
4 changed files with 15 additions and 6 deletions

View File

@ -3,7 +3,6 @@ package main
import ( import (
"errors" "errors"
"fmt" "fmt"
"io"
"log" "log"
"net" "net"
"sync" "sync"
@ -107,8 +106,8 @@ func (s *TRPClient) dealChan() error {
return err return err
} }
//创建成功后io.copy //创建成功后io.copy
go io.Copy(server, c) go relay(server, c.conn)
io.Copy(c, server) relay(c.conn, server)
return nil return nil
} }

View File

@ -3,7 +3,6 @@ package main
import ( import (
"errors" "errors"
"fmt" "fmt"
"io"
"io/ioutil" "io/ioutil"
"log" "log"
"net" "net"
@ -179,7 +178,7 @@ retry:
if _, err := link.WriteHost(s.tunnelTarget); err != nil { if _, err := link.WriteHost(s.tunnelTarget); err != nil {
goto retry goto retry
} }
go io.Copy(link, c) go relay(link.conn, c.conn)
io.Copy(c, link.conn) relay(c.conn, link.conn)
return nil return nil
} }

View File

@ -62,6 +62,7 @@ func (s *Tunnel) cliProcess(c *Conn) error {
s.verifyError(c) s.verifyError(c)
return err return err
} }
c.conn.(*net.TCPConn).SetReadDeadline(time.Time{})
//做一个判断 添加到对应的channel里面以供使用 //做一个判断 添加到对应的channel里面以供使用
flag, err := c.ReadFlag() flag, err := c.ReadFlag()
if err != nil { if err != nil {

10
util.go
View File

@ -7,6 +7,9 @@ import (
"encoding/binary" "encoding/binary"
"errors" "errors"
"fmt" "fmt"
"io"
"log"
"net"
"net/http" "net/http"
"net/http/httputil" "net/http/httputil"
"net/url" "net/url"
@ -146,3 +149,10 @@ func replaceHost(resp []byte) []byte {
} }
return []byte(str) return []byte(str)
} }
func relay(in, out net.Conn) {
if _, err := io.Copy(in, out); err != nil {
log.Println("copy error:", err)
}
in.Close() //
}