簡體   English   中英

Java TCP打孔

[英]Java TCP Hole Punching

我目前正在開發在線游戲。 在游戲中,必須通過TCP和UDP將數據從服務器發送到客戶端。 實現UDP孔打孔很容易,但是我不確定如何實現TCP孔打孔:

  1. 服務器:ServerSocket在給定端口1上偵聽
  2. 客戶端:套接字(對象)使用端口2連接到端口1上的服務器
  3. 建立連接后,服務器將保留server.accept()中的Socket對象,並在剩余時間內使用它向客戶端發送數據
  4. 建立連接后,客戶端將關閉其Socket對象並在端口2上打開ServerSocket。服務器現在可以使用端口1上的Socket對象將數據發送到端口2。

是3.還是4.正確的方法?

選項3。

選項4不起作用,因為一旦客戶端關閉套接字,雙方都將關閉。 服務器將必須跨NAT防火牆啟動連接,這顯然不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM