假设这里的代码是客户端
```
tcpConn.SetWriteDeadline(time.Now().Add(5 * time.Second))
n, err = tcpConn.Write([]byte(data))
if err != nil {
log.Println("写到缓冲区时错误", err)
return
}
```
前提,客户端和服务端定义严格的自定义通讯格式如下
前4个字节表示后面所有数据的长度 后跟内容
如上代码
如果五秒后超时后,返回的 n 是已经发送到缓冲区中的字节数,如果我一共要发送64个字节,但是这个返回的 n 是 3,则还有 61 个字节未发送,同时 3 个字节已经在缓冲区,此时该怎么办?
这3个节操作系统还是发送到对端,服务端收到一段不完整的数据
同时,好像 tcpconn 也没有清空发送缓冲区的方法 即使有 清空缓冲区的话 也会将原来处在缓冲区中的以前的完整的数据清空掉 ,这样也不合理.
你们怎么处理这种情况呢 感谢
有疑问加站长微信联系(非本文作者)