UDP客户端如何设置接收超时

2025-05-15 09:20:22

1、我设计了一个简单的类,只有构造函数和发送、接收函数,函数原型如图所示,读者朋友们可以不用定义类。

UDP客户端如何设置接收超时

2、构造函数只是简单的配置socket,设置UDP连接类型,(注意)在此构造函数调用前,确保WSAStartup函数被正确初始化,不然winsock不加载,socket函数将调用失败。

UDP客户端如何设置接收超时

3、send 函数是用于客户端向服务端发送数据,仅仅调用sendto函数即可,这个比较简单。函数调用失败,可以调用WsaGetLastError()函数查找调用失败的原因。一般不会有问题。

UDP客户端如何设置接收超时

4、重点就在这个接收数据的函数实现。如果仅仅调用recvfrom脑栲葱蛸函数,在网络异常状态下,此函数会挂起,不返回。因为默认winso艘早祓胂cket 是阻塞模式,示例的代码可以设置接收timeout,在一定时间内不能接收数据,函数就返回,这样就解决了UDP客户端超时阻塞的问题。

UDP客户端如何设置接收超时

5、文中示例代码分享的代码在百度网盘https://pan.baidu.com/s/1cwcE0u有需要的朋友可以下载查看代码,UDP server的代码我也放在上面了,供调试使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢