gpt4 book ai didi

c++ - Linux下的socket开发

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:07 27 4
gpt4 key购买 nike

以下是我的环境:

  1. Linux, Ubuntu
  2. C++/gdb
  3. eclipse

我正在实现一个 TCP 套接字服务器应用程序。
在开发/调试时,应用程序可能会在接受连接后终止,并且在正常关闭和关闭打开的套接字之前终止。在这种情况下,应用程序的下一次执行将无法绑定(bind)到监听端口,只有等待一分钟左右才能再次绑定(bind)成功。

我的假设是 Linux 内核有一些清理机制来〜收集〜所有未正常关闭的套接字,这解释了为什么我必须等待〜1 分钟才能再次绑定(bind)端口。

话虽如此,有没有办法避免这 1 分钟的等待?有没有办法强制操作系统收集所有未正常关闭的套接字?

我们将不胜感激。

索芬的纳达夫

最佳答案

当然有,只需在套接字上设置SO_REUSEADDR SOL_SOCKET 级别选项即可。

int yes = 1;
if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof yes))
perror("setsockopt");

关于c++ - Linux下的socket开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749688/

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