kor*_*rve 3 .net c# sockets asynchronous tcp
我打算通过套接字接收数据包,但由于它们是从发送方以高频率发送的,因此它们中的一些被打包到一个byte数组中.SocketAsyncEventArgs.Buffer然后保存多个数据包,即使它们是单独发送的(使用验证wireshark).
我已经尝试对传入的数据包进行排队并异步处理它们,但我仍然得到相同的结果.
这种行为可能是什么原因?
这就是TCP的工作原理.TCP连接是双向字节流,您必须这样处理它.从一端单个发送可能导致接收端的多次读取,反之亦然,多次发送可能最终在一次读取中,并且传输不保留应用程序消息边界.
您必须缓冲输入,直到您知道有完整的应用程序消息.常见方法是: