路由器中没有前向端口的Java程序

时间:2012-11-25 12:52:39

标签: java sockets

我使用socket使用java进行应用程序。我的电脑是服务器,我的电话(android)是客户端。只有我想做的是将String从手机转发到客户端PC。

当我配置我的路由器并打开我使用的端口时,一切正常。我不希望每次客户安装我的应用程序都需要在路由器中打开端口。

我考虑使用将运行我的服务器代码的远程服务器。但我没有找到可以做到这一点的服务器。我不想让我的电脑成为所有客户的服务器。

如果没有开放端口,所有聊天公司如何做到这一点?

2 个答案:

答案 0 :(得分:3)

你必须研究UPnP。这是/大多数/如果没有/所有/ torrent客户端用于允许外部连接,而没有转发端口。聊天客户端如何做到这一点是另一种情况。他们使用 hacks ,例如使用UDP(使用外部服务器)http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html进行防火墙打孔,有关UDP打孔的详细信息,请参阅此链接。

有关UPnP的使用,请参阅此文章http://www.codeproject.com/Articles/13285/Using-UPnP-for-Programmatic-Port-Forwardings-and-N。但这是用C ++编写的,但我想你会明白的。

编辑:http://4thline.org/projects/cling/我找到了这个。我认为它可以帮助你。

答案 1 :(得分:-1)

你必须打开端口可能是因为你的路由器防火墙:)。如果你已经打开让我们说端口9090然后每个客户端应用程序(Android手机)将能够连接到它:)。当然,如果有人想在他们自己的电脑上安装服务器,他们可能会转发一些端口并禁用一些防火墙。如果你想要没有特殊要求的服务器查找VPS'es。 :)