public static ProtocolDictionary Receive()
{
//内存缓冲区
MemoryStream memorys = new MemoryStream();
//接受数据
int rs = 0;
do
{
rs = cSocket.Receive(dataBuffer);
if (rs > 0)
memorys.Write(dataBuffer, 0, rs);
} while (rs > 0);
//}
//while (rs>0);
//填充到内存中
memorys.Seek(0, SeekOrigin.Begin);
//转化数据
int i = 0;
ProtocolDictionary pd = new ProtocolDictionary(memorys.ToArray(), ref i);
memorys.Close();
return pd;
}
使用这种方式时最好加简单的编码方案,如先传长度,然后再接受数据,这样你可以比较好的控制接收流,否则服务器有可能一次返回很大的数据包,你处理起来比较麻烦
在接收完成回调里面处理即可