winsock编程如何设置发送与接收超时参数?
2011-12-09 19:48
351 查看
在TCP通信中,为了防止阻塞式调用send函数与recv函数时程序在这两个函数处等待过久甚至一直等待,我们需要设置send函数与recv函数的超时时间长度。
要达到这个目的,在winsock编程中,我们调用setsockopt来完成这个任务。
此函数的相关文档可参看:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740476(v=vs.85).aspx
http://baike.baidu.com/view/569217.htm
此处以一个用例来说明如何解决设置发送超时与接收超时设置的问题:
要达到这个目的,在winsock编程中,我们调用setsockopt来完成这个任务。
int setsockopt( SOCKET s, int level, int optname, const char FAR *optval, int optlen );
此函数的相关文档可参看:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740476(v=vs.85).aspx
http://baike.baidu.com/view/569217.htm
此处以一个用例来说明如何解决设置发送超时与接收超时设置的问题:
int nTimeout = 1000; //设置发送超时为1000ms if (SOCKET_ERROR == setsockopt( this->m_socket, SOL_SOCKET, SO_SNDTIMEO, (char *)&nTimeout, sizeof(int))) { fprintf(stderr, "Set SO_SNDTIMEO error !\n"); } //设置接收超时为1000ms if (SOCKET_ERROR == setsockopt( this->m_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&nTimeout, sizeof(int))) { fprintf(stderr, "Set SO_RCVTIMEO error !\n"); }
相关文章推荐
- 关于linux下的udp/tcp通信设置发送sendto/接收recvfrom信息超时的参数。解决通道堵塞问题。
- Apache CXF 添加日志(控制台输入xml)、发送接收消息超时设置
- 串行通讯如何设置超时参数
- 使用setsockopt()接口,设置TCP的接收与发送超时,Invalid argument错误问题
- 设置TCP阻塞模式下的发送和接收函数超时时间
- socket C编程设置接收超时(Windows & Linux)
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
- 串行通讯如何设置超时参数
- android 蓝牙编程重点---如何发送和接收16进制数据
- CXF发送、接收消息超时设置
- Linux网络编程-UDP数据阻塞接收超时设置
- Socket编程中如何发送结构体,拼接多次接收消息及获取通信双方地址
- android 蓝牙编程重点---如何发送和接收16进制数据
- 使用setsockopt()接口,设置TCP的接收与发送超时,Invalid argument错误问题
- 网络编程中如何设置连接超时
- Socket编程中如何发送结构体,拼接多次接收消息及获取通信双方地址
- 用串口连接GSM手机发送和接收短消息,在应用程序中如何编程实现?
- 如何设置超时参数(串行通讯)
- 如何快速解决Java网络编程设置请求超时,还不快加入收藏!
- 网络编程中如何为I/O操作设置超时