gpt4 book ai didi

c - Linux 客户端套接字 : can't set O_NONBLOCK before connect?

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:48 26 4
gpt4 key购买 nike

是否可以实现非阻塞客户端套接字?我试过使用

sockfd = socket(AF_INET, SOCK_STREAM, 0);
fcntl(sockfd, F_SETFL, O_NONBLOCK);
connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr));

但是当应用程序到达connect 语句时,它存在以下错误:

连接错误:操作正在进行中

我需要创建一个完全非阻塞的套接字,它甚至不等待 TCP 握手。这可能使用标准套接字函数还是我必须进入线程?

最佳答案

在非阻塞模式下,您收到的错误是正常的。这只是意味着操作无法立即完成。这意味着您需要等待连接完成的文件描述符,然后才能使用它。

这就是非阻塞套接字在 C 中的工作方式。

关于c - Linux 客户端套接字 : can't set O_NONBLOCK before connect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5309163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com