0

我正在使用标准的 WinSock 函数进行套接字通信,现在假设我创建了一个套接字并且我的程序突然终止了套接字是否有机会保持活动状态?

我尝试了一个小例子,第一次调用socket返回的 API 4986,在突然终止可执行文件后,第二次调用socket返回的 API4946

但是我仍然觉得如果没有关闭套接字,它会在一段时间内保持活动状态。

请帮我澄清我的疑问

4

1 回答 1

0

在 linux 机器上,如果你用一个程序打开一个套接字,然后不干净地关闭程序,即崩溃它,套接字将保持打开状态。在这种情况下,操作系统会在经过一段时间后清理这些绑定的套接字(我不确定它有多长,我假设它指定了操作系统中的某个位置,它不到 10 分钟)。

http://compgroups.net/comp.os.ms-windows.programmer.win32/bind-error-after-crash-ho/368539 我认为这意味着 WinSock 在您崩溃或忘记关闭它们后仍然保持打开状态与您的应用程序。我不确定 Windows 如何处理这些打开的套接字,但我推断它类似于 linux 并在一段时间后关闭它们

于 2012-05-17T17:02:18.823 回答