private static UdpClient receivingUdpClient = new UdpClient(localPort);
while(true)
{
  receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
  ........
}
上面程序在本地开了一个侦听端口,并且能侦听到数据。
但是,程序一直开着,隔1,2个小时才有数据过来,侦听有时就会失效!在这种情况下,Receive()堵塞程序。
Receive侦听失效怎么办? 程序堵塞又如何处理?欢迎讨论

解决方案 »

  1.   

    程序堵塞可以用异步Socket方式处理,
    失效的话可能是你代码有问题。
      

  2.   

    侦听的话最好放另一个现成,还有你说的失效不知道是不是数据丢失,如果是的话,那正常的,如果不想数据丢失就用TcpClient
      

  3.   

    1  Receive侦听失效怎么办?   这个好象没有好的办法,只能使用其他的通信协议啦。2  程序堵塞又如何处理?   使用线程, 因为  Receive 方法为引入的数据报抡询底层的套接字并在接收到数据之前将阻塞主线程,直到数据报从远程主机到达为止。也就是程序执行将暂停,直至它接受到数据报的数据包。