如何让阻塞的函数返回

igoon 2008-02-19 03:17:24
用到一个函数,比如调用基于阻塞的SOCKET连接的时候例如Accept函数,当一直没有连接过来的时候,就一直在那儿等,有没有什么办法能让其超过了五秒后,还没有连接过来,就主动返回,中止这个Accept函数呢?
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bambo 2008-02-19
  • 打赏
  • 举报
回复
ACE里头有实现,不过看起来比较麻烦
erwin1984 2008-02-19
  • 打赏
  • 举报
回复
如果不想改变原有的socket属性和机制,还有一种方法,
自身创建一个socket来连接本地的accept socket所监听的端口。
taodm 2008-02-19
  • 打赏
  • 举报
回复
不能,也不该。
igoon 2008-02-19
  • 打赏
  • 举报
回复
不好意思,我的意思是说能不能用信号量什么之类的来处理,而不用异步或者close socket来解决这个问题。
我想用其它的一些函数来让这个Accept函数来返回。谢谢!
xgbing 2008-02-19
  • 打赏
  • 举报
回复
还没看完教程吧
继续看教程,后面讲异步通讯
erwin1984 2008-02-19
  • 打赏
  • 举报
回复
最好把socket设置成非阻塞,用select来确定read事件,然后调用accept来接受新的连接请求。
erwin1984 2008-02-19
  • 打赏
  • 举报
回复
可以设置超时,也可以在另外一个线程中close这个socket,accept就会失败返回了。
BluntBlade 2008-02-19
  • 打赏
  • 举报
回复
socket有超时选项的。查一下setsockopt函数看看。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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