linux api笔记(2) 网络编程(一)如何判断非阻塞套接字是否连接成功

本文介绍了在Linux网络编程中,如何判断非阻塞套接字连接是否成功。通过recv函数配合MSG_PEEK参数或者使用select、epoll等I/O模型监控,以及利用getsockopt获取SO_ERROR来检查连接状态。同时,文章提醒注意EINTR错误和Windows平台的差异。
摘要由CSDN通过智能技术生成

在socket编程中,我们往往要设置某个套接字为非阻塞状态;当一个套接字被设置为非阻塞状态之后再进行连接的时候,我们往往不确定其能在什么时候连接成功。

connect函数调用之后返回值非零并且errno的值往往是EINPROGRESS(在某些情况下比如连接本地的对端套接字说不定返回是0,这个目前没确定好)。这就意味着我们需要不断地对这个套接字进行检查。

检查就意味着我们在某个循环里面每次会判断一次套接字的状态,下面先给出比较笨的方法:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值