我是C真正的noob。我試圖在C開發自己的鎖服務器(只是爲了練習)。我有一個問題...讓我們想象一下,我們有用C編寫的服務器,我們有通過套接字連接到此服務器的遠程主機。當連接被啓動 - 我的服務器已經在內存中創建了指針。遠程主機斷開連接時是否可以刪除該指針?我如何捕捉斷開連接事件?如何捕捉斷開事件?
謝謝
我是C真正的noob。我試圖在C開發自己的鎖服務器(只是爲了練習)。我有一個問題...讓我們想象一下,我們有用C編寫的服務器,我們有通過套接字連接到此服務器的遠程主機。當連接被啓動 - 我的服務器已經在內存中創建了指針。遠程主機斷開連接時是否可以刪除該指針?我如何捕捉斷開連接事件?如何捕捉斷開事件?
謝謝
在真實世界的io場景中,您無法真正檢測到斷開連接。相反,您必須:
這意味着系統其中「必須」確保連接通常發送和接收定期「虛擬」的消息來檢測連接的丟失早於它會通過「正規」的業務單獨檢測。
根據您的應用程序,保持活動消息的開銷可能不值得。
你在網絡一側的「連接」實際上只是一串數據結構,可以讓你發送和接收數據。 「TCP/IP」較低的「IP」層是無連接的,這意味着您不會知道您的模擬「連接」是否可用,直到您嘗試使用它(或收到一個包明確告訴您另一端不會處理更多數據)。
的read(2)
系統調用將返回零當插座的另一端關閉連接。
取決於您使用的API。儘管通常不存在真正的斷開連接事件,只有關機,拒絕接收數據包和超時 – 2011-02-11 20:51:53