【发布时间】:2010-12-16 17:01:25
【问题描述】:
我想在 java 中制作一个简单的 p2p 信使,我已经设法与同一网络中的两台计算机进行通信,但是当我尝试从网络外部向另一台计算机发送消息时,消息正在消失......我知道我可以在路由器中进行转发,但我不想这样做,我想让它像 yahoo、gtalk 或其他 im 服务器一样。 我认为他们使用 nat 系统来做到这一点,但我不太清楚如何:D。
有人可以解释一下 NAT 的工作原理吗?如果这是解决我的问题的方法吗?
我读到我需要服务器的静态和公共 ip,当客户端(具有私有 ip)向服务器发送请求时,他的 NAT 将知道如何处理接下来来自服务器的消息时间......但是如果客户端不向服务器发送数据包并且服务器向客户端发送数据包,那么 NAT 不知道将数据包发送到网络内的哪里(到客户端)。
我的想法对吗?
非常感谢!
【问题讨论】:
标签: java sockets network-programming