linux - 在 C 中关闭监听的 TCP 套接字

标签 linux sockets tcp timeout

假设您有一个套接字监听 TCP 端口,并且一些客户端已连接。当在 C 中发出 sock_close(fd) 并尝试在同一端口上再次绑定(bind)时,绑定(bind)失败。在“netstat -plutnoa”上可以看到一些 TIME_WAIT 状态,例如:

tcp        0      0 127.0.0.1:4567          127.0.0.1:32977         TIME_WAIT   -                timewait (17.12/0/0)

那么如何才能正确地断开服务器套接字并立即在同一端口上重新连接呢?

最佳答案

您想在套接字上使用SO_REUSEADDR 选项。相关联机帮助页是 socket(7) .这是一个 example它的用法。 This question解释发生了什么。

关于linux - 在 C 中关闭监听的 TCP 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3855890/

相关文章:

python-3.x - 当我使用 linux penguin 在 chromebook 上安装 python 3.9 时,我仍然看到旧版本

c - Send() 消息包含 TCP 套接字中的某些字段 (C Linux)

Android::TCP 数据包

c - 如何在没有 libcurl 的情况下在 C 中发出 HTTP get 请求?

tcp - LWIP:TCP_INTERVAL 与 ACK 消息的接收究竟有何关系?

Linux Bash 文件名自动编号而不删除前导零

linux - 为什么 NPOI xlsx 文件生成在 Linux 服务器上不起作用

ruby - Linux-Live-系统公司。带读写分区的 U 盘上的 Ruby 1.9

java - 从服务器向客户端发送响应

java - .getInputStream() 出现问题