2013-03-07 47 views
3

考虑用手机A连接到wifi的电话,地址为动态Ip ex:192.168.0.34,并且通过服务器套接字监听port 7567,如何使用任何编程语言连接到该套接字if我有另一个电话B连接,这是公共IP说10.0.0.56和我有无线路由器IP说ex 55.56.89.76用插座连接一个ip在nat后面

回答

4

如果您不使用端口转发,则无法直接连接到NAT后面的客户端。但是有一种技术叫做打孔来打开NAT。

Wikipedia

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

参见与this topic有关的问题。

+0

但是所有路由器都不支持打孔功能,对,基本上我希望在服务器端创建一个消息应用程序,我只需要维护一个IP地址和端口的数据库,并且当需要共享消息时,我只需建立一个连接IP和端口运行侦听套接字来接收消息 – Rs9766 2013-03-07 19:45:43

+0

我认为在这种情况下,您需要一台服务器来转发您需要的信息。 – rekire 2013-03-07 19:48:48

+0

,我该怎么做,你可以给我一些示例链接 – Rs9766 2013-03-07 19:55:18