当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,