我是網絡編程的新手。我感興趣的是可以通過Java服務器和C客戶端之間的套接字建立網絡連接,並保持連接無限打開? 我想保持連接打開以在客戶端之間交換XML數據。是否有可能將套接字打開無限時間
回答
理論上可以保持服務器套接字打開無限長的時間;但是,使用客戶端套接字是不可能的。主要原因是因爲客戶端套接字依賴於處理數據的服務器端套接字,並且服務器套接字可能會關閉連接。
儘管可能會無限期地斷開連接,但實際方面通常會確保此類套接字不會永遠保持打開狀態。網絡中斷,中間路由器配置錯誤,帶寬耗盡,計算能力不足等等,都是爲了確保點對點連接充其量只是暫時的。
請注意,服務器端套接字是一個接收連接請求(產生具有自己的返回套接字的連接)的套接字,所以即使在沒有連接時也可以打開它。如果您認爲套接字是與另一臺計算機的開放連接,則需要重新調整思路,讓服務器套接字具有任何意義。
不要忘記處理上面指出的令人討厭的'EarthVaporizedException'和'UniverseHasEndedException'。 –
@LucaGeretti這樣的評論很有趣,但你真的只是避免回答這個問題。 Stackoverflow並不令人厭煩,但是包含宇宙熱死的答案在非通用時間尺度上並不有用。 –
第一段中描述的問題不侷限於客戶端套接字。它是對稱的。任何一方都可以丟棄連接,任何中間節點也可以。 – EJP
沒有什麼是無限的(在計算中),但只要兩個應用程序都在運行,您就可以保持套接字連接處於打開狀態。
這是比答案更懇求,但作爲一個用戶,我發現套接字一直在下降。你不能無情地打開它們。 (A)讓用戶知道連接已經掉線並(B)使其真易於重建同連接。好的,這涉及到遊戲,但我有客戶不承認服務器已經關閉,服務器無法識別我是與丟棄連接的人相同的人。
- 1. 是否有可能在服務器端打開兩個套接字
- 2. 「無法打開套接字」
- 3. 是否有可能在打開websocket連接時發送數據
- 4. 3g連接的開銷是多少以保持套接字打開無限期
- 5. 是否ServerSocket.close()應該關閉所有打開的套接字?
- 6. 套接字始終打開或只是在需要時打開?
- 7. 是否有可能在異步套接字上等待連接
- 8. 是否爲每個UDP連接打開一個新套接字?
- 9. Zend_Mail無法打開套接字
- 10. Node-Inspector無法打開套接字
- 11. 無法打開網絡套接字
- 12. 無法打開套接字C++
- 13. 是否有可能在打字稿
- 14. 是否有可能在打字稿
- 15. UNIX套接字:是否有可能欺騙getsockopt()SO_PEERCRED?
- 16. 是否有可能使用Twisted(Python)的原始套接字
- 17. 是否有可能通過套接字TCP發送ListViewItem?
- 18. 是否有可能延遲BufferedReader從套接字讀取
- 19. 是否有可能爲Perl的套接字偵聽增加QUEUESIZE?
- 20. recv()windows套接字需要無限時間 - 如何超時?
- 21. 爲什麼HttpClient將套接字打開?
- 22. 打開deflate mod後Apache服務器響應時間增加 - 是否有可能?
- 23. 套接字不打開?
- 24. NullPointer套接字接收或可能是套接字
- 25. 無限讀取套接字
- 26. 測試是否在linux中打開套接字
- 27. 檢查套接字是否仍然打開
- 28. nodejs - 如何測試遠程套接字是否打開
- 29. 如何檢查套接字服務器是否打開?
- 30. 測試套接字是否仍然打開
*「保持連接無限打開?」*可悲的是。在短短的幾億年內,地球就會被汽化。 –
不,最終宇宙將結束:-)更實際的一點是,經過一段時間後,連接可能會下降,並且由於網絡問題而必須重新建立。 –
也許你的意思是「持久」而不是「無限」? 「無限」在Stackoverflow中帶出憤世嫉俗的一面。 :P – kevin628