我正在开发一款在线游戏 . 在游戏中,有必要通过TCP和UDP将数据从服务器发送到客户端 . 实现UDP-Hole Punching很简单,但我不确定如何实现TCP-hole打孔:
-
服务器:监听给定端口1的ServerSocket
-
客户端:Socket(对象)使用端口2连接到端口1上的服务器
-
Build 连接后,服务器将Socket对象与server.accept()保持一致,并使用它将数据发送到客户端剩余的时间
-
Build 连接后,客户端关闭其Socket对象并在端口2上打开ServerSocket . 服务器现在能够使用端口1上的Socket对象向端口2发送数据 .
是3.还是4.正确的方法?
1 回答
选项3 .
选项4不起作用,因为一旦客户端关闭套接字,BOTH端就会关闭 . 服务器必须通过NAT防火墙启动连接,这显然不起作用 .