gpt4 book ai didi

关闭非阻塞套接字

转载 作者:太空宇宙 更新时间:2023-11-03 23:57:25 28 4
gpt4 key购买 nike

我在 C 中有以下代码。

void setNonBlocking(SOCKET fd){
int flags;
if (-1 == (flags = fcntl(fd, F_GETFL, 0)))
flags = 0;

fcntl(fd, F_SETFL, flags | O_NONBLOCK);
}

int main(){

int sock;
connect(sock, .....);
setNonBlocking(sock);
....
close(sock);

//we will do something here but the application exits in/after the close operation

}

我在非阻塞模式下使用 setNonBlocking 函数的套接字。当我关闭套接字时,应用程序会立即退出而不会出现段错误或其他任何情况。如果我不使用 setNonBlocking 函数,我看不到这个问题。

如何在没有这个问题的情况下关闭非阻塞套接字?

最佳答案

也许您的应用程序正在获取 SIGPIPE。在使用套接字编程时,您通常应该处理或忽略 SIGPIPE 信号。

关于关闭非阻塞套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1973784/

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