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;
        }
使用这种方式时最好加简单的编码方案,如先传长度,然后再接受数据,这样你可以比较好的控制接收流,否则服务器有可能一次返回很大的数据包,你处理起来比较麻烦
在接收完成回调里面处理即可