日期:2014-05-17  浏览次数:21408 次

C# TCP Receive接收不了数据
while (true)
            {
                Socket s = (Socket)ReScoket;
                byte[] result = new byte[1024];
                int lenth = s.Receive(result);
                string Message = Encoding.UTF8.GetString(result, 0, lenth);
                string[] Re = Message.Split(':');
                string OnLine = Re[3];
                frmLogin fr = new frmLogin();
                fr.add(OnLine);
            }
为什么程序执行到Receive这里就不再往下执行了?代码运行到Receive就退出了,为什么?
------最佳解决方案--------------------
你是阻塞式的吧, 如果没有数据传输,就会死在那等着,直到收到数据
------其他解决方案--------------------
那你看看是什么异常撒
------其他解决方案--------------------
同学,try一下吧,什么异常都会出来的
------其他解决方案--------------------
你是不是调试时候到了 int lenth = s.Receive(result); 这一句再往下走就没了?
就是因为Receive是阻塞的啊 线程会一直在这里等待直到收到数据才会往下走
------其他解决方案--------------------
不是,没有ACCEPT,是代码运行到 int lenth = s.Receive(result);就退出了,下面所有代码都没有执行,也退出了while循环
------其他解决方案--------------------
怎么没人回答?是分不够吗?
------其他解决方案--------------------
没有异常,就是运行到哪里就跳出循环,不再往下执行,一点异常都没报
------其他解决方案--------------------
就是try,catch的也是没有异常
------其他解决方案--------------------
不是到这里Receive就没有往下走,是到这里程序就退出了