即使我没有使用close()函数,为什么tcp连接关闭?

时间:2014-09-19 09:00:33

标签: sockets tcp

我使用ctrl + c来终止套接字程序而不是close()函数。一段时间后可以关闭TCP连接。内核如何处理这种情况?我以为只有close()函数才能关闭tcp连接。

2 个答案:

答案 0 :(得分:1)

您可以关闭套接字。对等体可以关闭连接。

答案 1 :(得分:0)

  

我以为只有close()函数才能关闭tcp连接。

为什么会这样? TCP是一种软件定义的协议。操作系统可以随心所欲地实现它。所有明智的操作系统都会清除已终止进程正在使用的所有资源。套接字也将关闭。如果没有进程使用它并且没有任何进程可以(因为最后一个句柄被销毁),TCP连接会有什么用呢?如果没有人能够读取或写入它,那么保持连接是没有意义的。