首页 新闻 会员 周边

Socket接收不到数据就跳出方法,不执行下面的代码

0
悬赏园豆:30 [已解决问题] 解决于 2015-04-27 17:20

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;
        }

问题补充: 当第一次接收完毕,再循环第二次接收的时候,如果没数据可接收,就直接跳出方法。 哪位大神俺的相亲来解我的迷惑呀
狂歌神的主页 狂歌神 | 初学一级 | 园豆:173
提问于:2011-03-16 16:08
< >
分享
最佳答案
0

使用这种方式时最好加简单的编码方案,如先传长度,然后再接受数据,这样你可以比较好的控制接收流,否则服务器有可能一次返回很大的数据包,你处理起来比较麻烦

收获园豆:30
2012 | 高人七级 |园豆:21230 | 2011-03-16 17:54
其他回答(1)
0

在接收完成回调里面处理即可

醉卧天南 | 园豆:369 (菜鸟二级) | 2011-04-19 11:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册