Networking 使用套接字连接nat后面的ip

Networking 使用套接字连接nat后面的ip,networking,network-programming,Networking,Network Programming,考虑一部连接到wifi的手机,其地址为动态Ipex:192.168.0.34,通过端口7567的服务器插座进行监听,如果我有另一部手机B连接公共ip上的,比如说10.0.0.56,我有wifi路由器ip,比如ex55.56.89.76,我可以用任何编程语言以什么方式连接到该插座?如果不使用端口转发,就不可能直接连接到NAT后面的客户端。但是有一种叫做打孔的技术可以通过NAT打开端口 发件人: 打孔是一种计算机网络技术,用于在独立组织中的双方之间建立通信,双方都支持限制性防火墙。用于在线游戏、P2

考虑一部连接到wifi的手机,其地址为动态Ip
ex:192.168.0.34
,通过端口7567的服务器插座进行监听,如果我有另一部手机B连接公共ip上的,比如说
10.0.0.56
,我有wifi路由器ip,比如ex
55.56.89.76
,我可以用任何编程语言以什么方式连接到该插座?

如果不使用端口转发,就不可能直接连接到NAT后面的客户端。但是有一种叫做打孔的技术可以通过NAT打开端口

发件人:

打孔是一种计算机网络技术,用于在独立组织中的双方之间建立通信,双方都支持限制性防火墙。用于在线游戏、P2P和VoIP等应用程序,这两个客户端都与不受限制的第三方服务器建立连接,该服务器可为它们显示外部和内部地址信息。由于每个客户机都向服务器发起了请求,因此服务器知道为该会话分配的IP地址和端口号,并相互共享。拥有有效的端口号会导致防火墙接受来自每一方的传入数据包。ICMP穿孔、UDP穿孔和TCP穿孔分别使用Internet控制消息、用户数据报和传输控制协议。使用TCP恶意穿孔,可以将压缩的SYN数据包发送到公共ACK路径。许多软件都能做到这一点


另请参阅有关的问题。

但并非所有路由器都支持打孔,对吗,基本上,我想做一个消息应用,在服务器端,我只需要维护一个ip地址和端口的数据库,当消息需要共享时,我只需要与ip和端口建立连接,运行一个监听套接字来接收消息。我想在这种情况下,你需要一个服务器来转发你需要的信息。我该怎么做这样做,你能给我一些样本链接,这取决于你的服务器。您使用哪种操作系统?你最喜欢哪种编程语言?linux作为操作系统,java作为语言