2014-09-19 35 views
1

我用ctrl + c來終止socket程序而不是close()函數。 TCP連接可能會在一段時間後關閉。內核如何處理這種情況?我認爲只有close()函數可以關閉tcp連接。爲什麼tcp連接關閉,即使我沒有使用close()函數?

+2

沒有指定的操作系統。但是一般來說,操作系統會在終止時清除進程的操作系統分配資源。 – 2014-09-19 09:05:37

+0

我_think_套接字實現(如的WinSock)將檢測應用程序不再運行(例如,通過引用計數),並且將終止插座。 – CodeCaster 2014-09-19 10:16:43

回答

1

您可以關閉套接字。對等體可以關閉連接。

0

我以爲只是接近()函數可以關閉TCP連接。

爲什麼會是這樣? TCP是一種軟件定義的協議。操作系統可以實現它,但它喜歡。所有明智的操作系統都會清理終止進程正在使用的所有資源。套接字也將被關閉。如果沒有進程使用它並且沒有進程可以(因爲最後一個進程被銷燬),TCP連接有什麼用處?如果沒有人能夠讀或寫它,保持連接是沒有意義的。

相關問題