读书人

C# TCP Receive接收不已数据

发布时间: 2012-12-24 10:43:14 作者: rapoo

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就没有往下走,是到这里程序就退出了

读书人网 >C#

热点推荐