```go
tcpAddr, err := net.ResolveTCPAddr("tcp4", "localhost:8080")
fmt.Println(err)
server, e := net.ListenTCP("tcp", tcpAddr)
fmt.Println(e)
for {
conn, _ := server.AcceptTCP()
util.SetTCPOption(conn)
}
```
```go
tcpConn := conn.(*net.TCPConn)
tcpConn.SetNoDelay(false)
tcpConn.SetWriteBuffer(30000)
tcpConn.SetReadBuffer(30000)
```
在做数据传输时,设置TCP server,client的接受,发送缓冲区大小时,也开启压缩。
但是在server端,偶尔第一次收到的包,读不够长度,
但是后续包都很正常,不知道哪里有问题,server读的太快了,数据还在路上么?
操作系统windows。另外,因为是并行读,所以用for读满可能会乱序,不考虑
<a href="/user/polaris" title="@polaris">@polaris</a> 大佬,您闲的时候给小弟解惑一下呗
```go
func getPartBody(length int, conn net.Conn) ([]byte){
buf := make([]byte, length)
num, _ := conn.Read(buf)
fmt.Println("read num:", num)
//TODO recover
if length != num{
panic("数据包异常")
}
return buf[:num]
}
fun
```
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,免费领全套学习资料或添加微信:muxilin131420 备注:入群;或加QQ群:729884609
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传