首页 文章

Java TCP打孔

提问于
浏览
0

我正在开发一款在线游戏 . 在游戏中,有必要通过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 回答

  • 1

    选项3 .

    选项4不起作用,因为一旦客户端关闭套接字,BOTH端就会关闭 . 服务器必须通过NAT防火墙启动连接,这显然不起作用 .

相关问题