據我所知,TCP套接字上的Keep-alive有助於瞭解套接字是否不僅僅是打開的,而且兩個套接字之間的連接實際上是活動的。所以,我有幾個問題我想關於保持連接的Winsocks2使用來電諮詢:什麼時候TCP套接字需要保持活動狀態?
1
A
回答
1
當keep-alive選項檢測到死亡套接字時會發生什麼?
連接重置,任何讀取或寫入都會出現「連接重置」錯誤。請注意,keepalive默認情況下處於關閉狀態,啓用時默認情況下每隔兩小時運行一次。
如何在沒有實際使用send和recv的情況下檢查連接是活着還是死亡?
你不行。 TCP/IP被故意設計爲不具有「撥號音」。它的工作方式好得多。這是爲什麼它取代了像SNA這樣的所有先前協議的主要原因。
如果我必須使用send和recv函數,那麼首先使用keep-alive有什麼意義?
recv()
不會告訴你有關斷開的連接。它可能永遠阻止。您可以使用讀取超時,但您必須決定多少時間太多。或者,您可以實現應用程序級PING。
1
保持活動檢測是否在連接的另一端(或物理鏈路,如網絡是向下)的服務器發送郵件之前已經死亡。否則,只有在您實際嘗試發送數據時纔會檢測到斷開連接,如果您的連接由於某種原因而處於空閒狀態可能需要很長時間。
相關問題
- 1. LDAP套接字保持活動狀態
- 2. 有關TCP連接和TCP的查詢保持活動狀態?
- 3. 配置保持活動狀態始終保持連接狀態
- 4. 什麼時候兌現保持活躍
- 5. 保持TCP連接保持活動狀態並僅循環GET命令
- 6. 套接字。當我需要數據包時,數據包保持隊列狀態
- 7. 使連接保持活動狀態
- 8. Java SSLSocket不會保持活動狀態(需要使用HTTPS持久連接)
- 9. Android保持活動狀態
- 10. Application.DoEvents,什麼時候需要,什麼時候不需要?
- 11. HTTP保持活動狀態超時
- 12. 爲什麼和什麼時候需要使用php中的套接字
- 13. 無法獲取套接字以保持活動狀態並接收數據
- 14. 如何使用boost :: asio使套接字連接保持活動狀態?
- 15. 遠程關閉後TCP套接字的狀態是什麼?
- 16. Swift:TCP套接字保持活動
- 17. Python 3.5.2套接字保持活動
- 18. 保持iPhone網絡連接處於非活動狀態時保持活動狀態?
- 19. 我什麼時候需要InamingContainer接口?
- 20. 什麼時候WebRequest.GetResponse()設置連接到「保持活躍」 C#
- 21. 頁面刷新後保存TCP套接字(連接)的狀態
- 22. 連接池會保持oracle會話保持活動狀態嗎?
- 23. HTTP Keep Alive和TCP保持活動狀態
- 24. Tcp連接保持活着
- 25. 什麼時候需要CAMLparamX?
- 26. 什麼時候需要pygame.init()?
- 27. 什麼時候需要NSCopying?
- 28. 什麼時候需要NS_RETURNS_RETAINED?
- 29. 什麼時候需要「javascript:...」?
- 30. 什麼時候需要TransactionScopeOption.Supress?