UDP客户端如何设置接收超时
1、我设计了一个简单的类,只有构造函数和发送、接收函数,函数原型如图所示,读者朋友们可以不用定义类。
2、构造函数只是简单的配置socket,设置UDP连接类型,(注意)在此构造函数调用前,确保WSAStartup函数被正确初始化,不然winsock不加载,socket函数将调用失败。
3、send 函数是用于客户端向服务端发送数据,仅仅调用sendto函数即可,这个比较简单。函数调用失败,可以调用WsaGetLastError()函数查找调用失败的原因。一般不会有问题。
4、重点就在这个接收数据的函数实现。如果仅仅调用recvfrom脑栲葱蛸函数,在网络异常状态下,此函数会挂起,不返回。因为默认winso艘早祓胂cket 是阻塞模式,示例的代码可以设置接收timeout,在一定时间内不能接收数据,函数就返回,这样就解决了UDP客户端超时阻塞的问题。
5、文中示例代码分享的代码在百度网盘https://pan.baidu.com/s/1cwcE0u有需要的朋友可以下载查看代码,UDP server的代码我也放在上面了,供调试使用
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:44
阅读量:60
阅读量:45
阅读量:72
阅读量:86