日期:2014-05-19  浏览次数:20828 次

求助:使用UdpClient.Receive方法接收对方回复时,如若对方没有答复,怎么解决Receive方法死等的问题?
MSDN:Receive方法将阻塞,直到数据报从远程主机到达为止。
可如若远程主机无数据报返回,或者数据报丢失,那岂不是Receive方法将永远等下去了么?如何解决此问题,或设置超时时间?盼答,非常感谢

如若推荐一些供相关的文章也不胜感激,如果用代码说明希望能用文字说明下核心的思想

解决后立即结贴

------解决方案--------------------
socket编程设置socket.Receive()的等待时间:
IPEndPoint remohost=new IPEndPoint(IPAddress.Parse( "192.168.0.125 "),5010);
Socket s=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
s.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.SendTimeout,time_out);
s.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,time_out);

------解决方案--------------------
BeginReceive
------解决方案--------------------
呵呵,我来接分 : )