如果我将套接字设置为非阻塞操作,则如下:
int fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TCP);
int rc = connect(fd, (struct sockaddr *)&addr, sizeof(addr));
...是否保证connect
失败并失败EINPROGRESS
,还是我需要处理立即成功的情况?
答案 0 :(得分:3)
不一定。连接到127.0.0.1
可能会立即连接或失败。
答案 1 :(得分:2)
您需要处理立即成功的情况。这就是为什么它返回0或-1的原因。对于非阻塞模式,文档没有任何例外。