2012-01-02 111 views
0


我想在不在同一网络上的两台计算机之间进行通信,我尝试使用套接字,但是我只找到用于在相同网络中进行通信的教程和示例网络。
我试图在stackoverflow上搜索,但我没有清楚知道要搜索什么。
我想发送文本双向(聊天)。与不在同一网络上的计算机进行通信

-edit-事情是,这对我来说模糊了我必须使用或做的事情,所以我不能更清楚地说我想为chatapp发送双向文本(可能是日期)只是为了学习。 -edit-

+1

请提供详细信息,否则问题将以模糊的方式关闭。你的意思是“不在同一个网络上?你为什么要使用套接字?什么样的沟通方式 - 一种方式,可靠的,安全等等?你的目标是什么?详情请咨询 – 2012-01-02 10:44:25

+0

请提供更具体的问题以及您遇到的问题的更多详情。 – 2012-01-02 10:49:08

回答

1

要在两台机器之间进行通信,它们必须位于相同的扩展网络中。唯一的另一种选择是将数据保存到外部驱动器,例如USB驱动器,您可以连接到第二台机器并上传。

您可以使用套接字与具有Internet连接的任何其他计算机进行通信,并提供您的防火墙并将其配置为允许连接。防火墙的重点在于防止未经授权的访问。我怀疑这是你真正的问题。如果你的防火墙阻止访问,你不应该能够绕过这个使用Java(谷歌网络黑客的替代品;)

另一种选择是使用服务,如电子邮件,如果两台计算机不能直接相互对话他们仍然必须连接到同一网络)这比使用直接连接要复杂得多,但可以完成。

我建议您改为正确配置防火墙,您将可以使用普通套接字。

+0

无法计算机具有相同的名称然后(套接字通过主机名连接?)? 或者你可以使用IP地址? – 11684 2012-01-02 10:55:30

+0

这不是我所说的,但是计算机可以具有相同的名称,只要它们具有不同的域名和不同的外部IP地址。如果在同一本地网络中有两台计算机具有相同的地址,则这是错误配置的网络。 – 2012-01-02 10:58:19

+0

“您可以使用套接字与任何其他具有Internet连接的计算机进行通信” 因此,您认为您可以使用IP地址连接到不需要位于同一网络中的计算机上的套接字? – 11684 2012-01-02 11:03:04

0

你必须得到外部IP(有访问时给你这个IP的站点),并希望防火墙允许通信。通常应该使用1000以上的端口。 应该有对等的库。

另一种方式是通过一台计算机上的SSH(JSch是一个用于SSH的Java库)。

最简单的方法是电子邮件交换:javax.mail API是紧凑的,但不是最简单的。 (特别是您可以轻松删除所有邮件,就像我曾经做过的那样)。

相关问题