【发布时间】:2010-10-21 00:16:02
【问题描述】:
在 unix 的网络编程中,我总是在服务器用来监听连接的套接字上设置 SO_REUSEADDR 选项。这基本上表示可以在机器上的同一端口上打开另一个套接字。这在从崩溃中恢复并且套接字未正确关闭时很有用 - 可以重新启动应用程序,它只会在同一端口上打开另一个套接字并继续侦听。
我的问题是,旧套接字会发生什么?毫无疑问,所有数据/连接仍将在旧套接字上接收。它会被操作系统自动关闭吗?
【问题讨论】:
-
澄清:程序崩溃后,操作系统例如Linux 内核,将自动关闭套接字。有协议原因 (TCP) 为什么您不想立即重新打开连接。
标签: c network-programming unix