【发布时间】:2011-08-06 23:35:43
【问题描述】:
我想用 Java 创建一个简单的聊天程序,它可以在 p2p 基础上运行。使用公共服务器仅启动连接。但我什至不确定这是否可能。
如果至少有一台 PC 转发了正确的端口,我成功地用 Java 实现了聊天解决方案。我还设法使用外部服务器,而不是必须在客户端转发端口。
所以我什至有可能以某种方式使用公共服务器来启动连接,而不是在客户端之间正确发送数据,从而减轻服务器的负载?
我不太熟悉路由器的工作原理,但我希望当您从内部 IP 调用公共服务器时,路由器会记住来自该公共 IP 的呼叫和传入响应,而不是发送到您的 PC。所以我想,也许如果第一个客户端连接到服务器,服务器比将信息传递给第二个客户端,也许他们可以以某种方式直接通信?如果router中的规则是服务器建立的?
我希望我解释清楚了。如果没有,请原谅我。我什至不知道这到底是怎么做到的,我只是想知道我的概念是否正确,我必须更加努力地学习,才有可能实现它。谢谢。
【问题讨论】:
-
你只是在使用 tcp 进行通信,对吧?
标签: p2p portforwarding hole-punching