在编写Socket程序时候,在使用connect连接时,errno提示报错,打印消息是EINPROGRESS,查询代码如下,意思是操作正在运行。
#define EINPROGRESS 115 /* Operation now in progress */
下面是我的编程流程
- 建立socket
- ioctlsocket设置非阻塞
- connect连接
再去官方网站查看connect接口,返回EINPROGRESS的官方描述:https://man7.org/linux/man-pages/man2/connect.2.html
EINPROGRESS
The socket is nonblocking and the connection cannot be
completed immediately.
刚好我设置的非阻塞,调用connect接口不能立马建立连接,所以就会报这个错误。
于是修改逻辑如下即可解决问题:
- 建立socket
- connect连接
- ioctlsocket设置非阻塞