什么是在linux中连接非阻塞套接字的正确方法
我刚接触使用
Linux中的套接字进行编程,并且对于进行非阻塞连接的正确方法存有疑问.
我已经创建了一个套接字描述符,并为非阻塞IO设置了O_NONBLOCK.我调用connect,它返回EINPROGRESS,然后调用select,带有超时值. 如何判断connect()操作在超时之前需要多长时间?我可以在程序中更改此内容吗? 如果我的选择操作超时,那么呢?关闭套接字描述符,创建另一个,然后重试连接是正常的吗?或者,有没有办法取消现有套接字上的连接并使用相同的套接字描述符重试该操作? 谢谢. 解决方法
你没有.您必须提前决定合理的超时将满足您的需求,然后将该值传递给select().我通常使用5到30秒之间的任何时间,具体取决于我运行的应用程序的网络类型.
最终,没有.操作系统控制等待连接超时的时间.您可以调整特定于操作系统的设置来控制超时,但这不是可移植的或推荐的.
你唯一能做的就是关闭套接字然后再试一次.
是.
没有. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 热备用主机vs冷备用主机?
- linux – 在64位机器上运行valgrind 32位二进制文??件
- linux – 使用IPTables限制每个源IP的ICMP
- 在Linux中对sbrk(0)的初始调用是否总是返回一个与8个字节对
- OpenCV在与anaconda的Linux上使用python无法正常工作.获取未
- unix网络编程书代码因旧操作系统有bug,如何解决这个问题或在
- linux – 在GNU屏幕标题或hardstatusline中右对齐文本
- Centos6.5 离线 Openssh 升级
- linux – 如何知道何时将文件添加到目录中?
- linux – 是否有工具可以监控或记录Web服务器响应的速度