请问如何设置accept超时?

dadi0189 2006-10-20 10:04:58
各位大虾,监听用的是阻塞socket,没有连接请求时accept就一直等待下去,
现在我要accpet在一定时间内返回,如何设置?谢谢各位高手帮忙解答一下。
...全文
387 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojian88888 2006-10-21
  • 打赏
  • 举报
回复
1. 循环accept就行了
2. 重叠I/O中,WSAGetOverlappedResult函数的第三个参数返回传输的字节数,如果为0,表示对方关闭
dadi0189 2006-10-20
  • 打赏
  • 举报
回复
设成非阻塞,然后使用select判断isset(listenfd,&readfds).
===============
我用的是重叠I/O机制,我试过设置为非阻塞式了,此时accpet立即返回,但只能连接一个客户端。
再问一下在重叠I/O中如何得知客户端已断开连接?
baojian88888 2006-10-20
  • 打赏
  • 举报
回复
也可以用 WSAEventSelect 注册 FD_ACCEPT 事件,然后 WSAWaitForMultipleEvents 中设置等待超时
ZHENG017 2006-10-20
  • 打赏
  • 举报
回复
设成非阻塞,然后使用select判断isset(listenfd,&readfds).

18,356

社区成员

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

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