问题描述:
lis.Accept()得到conn之后,bufio.NewReader(conn)是可以正常读取请求中数据的,之后bufio.NewWriter(conn)不知道为什么不能返回给客户端数据。是我哪里写错了吗?如果有问题的话,我要实现客户端、服务端互相传输数据,应该怎么写呢?有没有大神可以指导一下,感激不尽。
服务端代码
package main
import (
"bufio"
"fmt"
"io"
"net"
)
func main() {
l, err := net.Listen("tcp", ":9091")
if err != nil {
fmt.Println("listen error:", err)
return
}
for {
c, err := l.Accept()
if err != nil {
fmt.Println("accept error:", err)
break
}
go handle(c)
}
}
func handle(c net.Conn) {
temp := make([]byte, 6)
rBuf := bufio.NewReader(c)
n, err := rBuf.Read(temp)
for err != io.EOF {
if err != nil {
fmt.Println("read error:", err)
return
}
fmt.Printf("%d:%v\n", n, (string(temp)))
temp = make([]byte, 6)
n, err = rBuf.Read(temp)
}
/** 下面发送的代码无效,客户端read一直阻塞 **/
ret := []byte("rrrs")
wbuf := bufio.NewWriter(c)
wbuf.Write(ret)
wbuf.Flush()
}