Socket Receive的问题
Thread thread = new Thread(new ThreadStart(reControlCode));thread.Start();
//声明字节数组,一次接收数据的长度为1024字节
byte[] recvBytes = new byte[4];
//返回实际接收内容的字节数
int bytes = 0;
while (true)
{
//Application.DoEvents();
bytes = socket.Receive(recvBytes, recvBytes.Length, 0);
if (bytes <= 0)
break;
ss += Encoding.ASCII.GetString(recvBytes, 0, bytes);
}
我市用个线程控制的,可是我数据读完了,那个 运行socket.Receive就退了,我下面的操作都不执行了,不知道什么原因 --------------------编程问答-------------------- if(bytes >0)
{
string ss=System.Text.Encoding.ASCII.GetString(recvBytes);
}
这样试一下呢? --------------------编程问答-------------------- 他是停在 bytes = socket.Receive(recvBytes, recvBytes.Length, 0);这个地方就跳出去了,我也不明白为什么,高手指点一下 --------------------编程问答-------------------- 我也有一样的问题,在socket.receive 这边停住了! --------------------编程问答-------------------- 这个地方线程会阻塞,以等待socket上数据的到来后,才能向下执行。
也就是说,你要读的地方还没准备好,当然是要阻塞的了,在收到数据包后,状态改变,
就可以向下执行了 --------------------编程问答-------------------- 你要先测试有没有数据再读
补充:.NET技术 , C#