c#服务器消息处理不过来怎么回事

如题所述

socket通信中,数据是以流的方式传递,可能情况:数据包超过1个MTU,那数据包会被系统分包发送,当用Receive方法是从你定义的SOCKET接收缓冲区中读取数据的,可能第一次读只收到第一个分包。你强制等待3S,SOCKET的接收缓冲区已经接收到所有的包了。建议:将你的数据包加入自定义格式格式发送,比如数据头加入:0XFE,数据尾加入0XFD,这样用RECEIVE来一直接收,当判断收到完整数据时,再进行处理。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答