gpt4 book ai didi

c - 程序终止时 Linux 套接字释放速度太慢

转载 作者:可可西里 更新时间:2023-11-01 11:49:29 26 4
gpt4 key购买 nike

编辑:tl;dr:

不要打开带有错误选项的套接字,它不太可能工作!

原始问题:

我正在使用一个没有干净关闭机制的程序,它只是依靠被杀死来终止它。

它打开一个套接字如下:

(void) setsockopt(h, SOL_SOCKET, (SO_KEEPALIVE | SO_REUSEADDR), (int *) & optval, sizeof( optval ));

重用地址选项似乎确实有效,因为最终套接字在程序结束后被释放。最终从几秒到一分钟不等。

这非常乏味,因为我需要定期重新启动该程序。使程序正确终止将是一项非常艰巨的工作,但我想知道我是否可以做更多的本地工作来更早地释放套接字?

最佳答案

套接字选项不是位,因此不能像 SO_KEEPALIVE | SO_REUSEADDR。迂腐一点,SO_KEEPALIVE | SO_REUSEADDR 产生另一个套接字选项 SO_NO_CHECK

您没有注意到这个错误,因为您没有检查setsockopt 的返回值。现在您知道为什么忽略返回值被认为是不好的做法了。

关于c - 程序终止时 Linux 套接字释放速度太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18854027/

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