gpt4 book ai didi

Close(fd) 不生效

转载 作者:行者123 更新时间:2023-11-30 18:07:17 27 4
gpt4 key购买 nike

我的要求是在服务器启动时与服务器连接,客户端将继续尝试与服务器连接直到连接成功。所以我使用套接字创建了套接字fd( )并尝试使用 connect() 进行连接。如果连接失败,我使用 close() 关闭 fd。

预期的行为是,当下一次尝试时,需要由套接字()生成相同的文件描述符。但是对于每次尝试,只会创建新的描述符,因为我要在失败的情况下关闭文件描述符。什么可能是问题所在。有人可以帮助我吗?

最佳答案

如果您想重复尝试连接到服务器直到建立连接,只需在连接调用周围使用循环即可。 socket 仅将端点和文件描述符绑定(bind)在一起。

while (1) {
state = connect(fd, &sa, sizeof sa);
if (state == 0) {
break
} else {
/* Is the server available yet? */
if (errno == ECONNREFUSED) {
/* No, continue trying to connect. */
continue;
} else {
/* Deal with other errors. */
}
}
}

关于Close(fd) 不生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735434/

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