修复gtcp连接池问题

This commit is contained in:
John
2018-07-18 12:39:59 +08:00
parent 16959c68e9
commit 7c3a665bfa
3 changed files with 14 additions and 7 deletions

View File

@ -75,10 +75,10 @@ func (c *PoolConn) Close() error {
// 发送数据
func (c *PoolConn) Send(data []byte, retry...Retry) error {
var err error
if err = c.Send(data, retry...); err != nil && c.status == gCONN_STATUS_UNKNOWN {
if err = c.Conn.Send(data, retry...); err != nil && c.status == gCONN_STATUS_UNKNOWN {
if v, e := c.pool.NewFunc(); e == nil {
c.Conn = v.(*PoolConn).Conn
err = c.Send(data, retry...)
err = c.Conn.Send(data, retry...)
} else {
err = e
}
@ -93,7 +93,7 @@ func (c *PoolConn) Send(data []byte, retry...Retry) error {
// 接收数据
func (c *PoolConn) Receive(length int, retry...Retry) ([]byte, error) {
data, err := c.Receive(length, retry...)
data, err := c.Conn.Receive(length, retry...)
if err != nil {
c.status = gCONN_STATUS_ERROR
} else {

View File

@ -15,12 +15,15 @@ func main() {
c := gtcp.NewConnByNetConn(conn)
defer c.Close()
for {
if data, _ := c.Receive(-1); len(data) > 0 {
data, err := c.Receive(-1)
if len(data) > 0 {
if err := c.Send(append([]byte("> "), data...)); err != nil {
fmt.Println(err)
fmt.Println(err)
}
}
// return
if err != nil {
break
}
}
}).Run()

View File

@ -15,11 +15,15 @@ func main() {
c := gtcp.NewConnByNetConn(conn)
defer c.Close()
for {
if data, _ := c.Receive(-1); len(data) > 0 {
data, err := c.Receive(-1)
if len(data) > 0 {
if err := c.Send(append([]byte("> "), data...)); err != nil {
fmt.Println(err)
}
}
if err != nil {
break
}
return
}
}).Run()