- c# 中Socket通讯接收数据不完整处理
最近在做一款粮情检测软件,遇到一个问题,就是硬件测温板子发过来的数据分包发送过来,这边接收不完整,在网上查找资料,大致都是判断剩下的有效数据是否还有,有的话继续接收,如代码
private void ReceiveMsg(object socketClientPara)
{
Socket socketClient = (Socket)socketClientPara;
while (true)
{
try
{
//创建一个内存缓冲区 其大小为1024*1024字节 即1M
byte[] arrServerRecMsg = new byte[1024 * 1024];
dataLength = 0;
index = 0;
dataLength = socketClient.Receive(arrServerRecMsg, arrServerRecMsg.Length, 0);
while (socketClient.Available > 0)
{//参数 数据缓存区 起始位置 数据长度 值的按位组合
index = socketClient.Receive(arrServerRecMsg, dataLength, socketClien