请问,recv能实现永久等待吗?怎样实现?

caep_cq 2005-10-17 10:42:51
谢谢
...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
caep_cq 2005-10-17
  • 打赏
  • 举报
回复
ximenying(西门) :不是吧,有个默认超时时间吧
ximenying 2005-10-17
  • 打赏
  • 举报
回复
本来就是永久等待直到有数据到来啊,还需要怎么实现啊
godoli 2005-10-17
  • 打赏
  • 举报
回复
int setsockopt (SOCKET s,int level,int optname,const char FAR * optval,int optlen);
int timeout = 6000;// 超时时间
setsockopt(s,SOL_SOCKET,RCVTIMEO,(char FAR *)&timeout,sizeof(int));
19. SO_RCVTIMEO
选项值 类型获取/设置 Winsock版本 说明
整数 两者均可 1 + 获取或设置与套接字上数据接收对应的超时时间值(以毫秒为单位)
SO_RCVTIMEO选项用于设置一个锁定套接字上的接收超时值。这是一个以毫秒为单位的整数,用于指出一个Winsock接收函数在接收数据时,最多应“锁定”多长时间。如需使用SO_RCVTIMEO选项,并用WSASocket函数创建套接字,那么必须将WSA_FLAG_OVERLAPPED指定成为WSASocket的dwFlags参数的一部分。以后对任何Winsock接收函数的调用(包括recv、recvfrom、WSARecv、WSARecvFrom等等)都只会锁定指定的时间长度。假如在那段时间内,没有数据抵达,调用便会失败,并返回错误10060(WSAETIMEDOUT)。
微星1234 2005-10-17
  • 打赏
  • 举报
回复
可以对套接字设置等待时间的啊, 设成足够长不就行啦

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧