c# Socket Send Receive 边界问题?求高手解决!
在Socket 通信中
接收端接到第一个数据包的时候, 如果处理时间稍微长了一点。
当还在处理第一个消息的时候, 发送端又连续发送了两个数据包过来, 我把每个包设置不会大于1500, 也就是有可能数据包小于1500 但不会大于1500.
当出现这种情况的时候, 如果第一个包大小为1000, 没问题
但是如果第二个包小于1500, 例如1200, 第三个包 就随便多大,只是不大于1500,
当接收到 通过socket.Receive 接收的时候, 就把第二个和第三个合并了, 所以接收的时候, socket.Receive返回的是1500
而不是发送端 发送的1200
也就是他自己把第二个包和第三个包合并成了两个包了
成了: 第一个1500, 第二个 就成了本来的大小+(1500- 1200)了
问题好像是 socket发送的时候 没有定义界限, 所以系统合包了。
请问谁知道解决?