C# Udp接收超时解决办法,新手必看

编程入门 行业动态 更新时间:2024-10-07 22:22:22

C# Udp接收超时解决办法,新手<a href=https://www.elefans.com/category/jswz/34/1769817.html style=必看"/>

C# Udp接收超时解决办法,新手必看

在使用UDP接收信息的时候,经常会遇到要持续接收的情况,基本上是用死循环的模式来做这个事情,但是如果持续接收不到消息该怎么办,那程序就阻塞了,一直在等待状态

C# 在创建Socket的时候是可以设置超时的
超时 会报异常
处理就好了
给个例子
这行代码进行设置:
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, StopTime);

 public static void UdpReceive(int StopTime, int port){//创建一个UDPSocketSocket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);try{sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, StopTime);//创建一个端口为port的终结点接收来自任意端口的信息IPEndPoint iep = new IPEndPoint(IPAddress.Any, port);sock.Bind(iep);EndPoint ep = (EndPoint)iep;byte[] data = new byte[1024];while (true){int recv = sock.ReceiveFrom(data, ref ep);string stringData = Encoding.ASCII.GetString(data, 0, recv);}}catch (Exception){MessageBox.Show("接收超时");sock.Close();}}

记得在catch 中关闭socket哦

更多推荐

C# Udp接收超时解决办法,新手必看

本文发布于:2024-02-13 14:45:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759366.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:必看   解决办法   新手   Udp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!