我尝试创建一个用于多个写和读并发的sigle TCP连接客户端.例如,TCP Server将像您编写的那样返回值.问题是写和读之间交换的数据.我尝试过sync.Mutex,但它仍然无效.
我的结果是:
2018/03/10 12:52:10 STRING 4:1
2018/03/10 12:52:10 STRING 5:6
2018/03/10 12:52:10 STRING 2:3
and so on
Run Code Online (Sandbox Code Playgroud)
我的期望是:
2018/03/10 12:52:10 STRING 4:4
2018/03/10 12:52:10 STRING 5:5
2018/03/10 12:52:10 STRING 2:2
2018/03/10 12:52:10 STRING 3:3
Run Code Online (Sandbox Code Playgroud)
这是我的代码:package main
import (
"bufio"
"log"
"net"
"strconv"
"sync"
"time"
)
type Cc struct {
mux sync.Mutex
rw *bufio.ReadWriter
}
func main() {
addr := "127.0.0.1:3333"
log.Println("Dial " + addr)
conn, err := net.Dial("tcp", addr)
cc := Cc{
rw: bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)),
}
if err …Run Code Online (Sandbox Code Playgroud)