与不在同一网络上的计算机进行通信

时间:2012-01-02 10:41:29

标签: java communicate


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

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

2 个答案:

答案 0 :(得分:1)

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

您可以使用套接字与具有Internet连接的任何其他计算机进行通信,前提是您的防火墙并配置为允许连接。防火墙的重点是防止未经授权的访问。我怀疑这是你真正的问题。如果您的防火墙阻止访问,您应该无法利用Java解决这个问题(谷歌网络黑客攻击替代方案;)

另一个选择是使用电子邮件等服务,如果两台计算机无法直接相互通信(它们仍然必须连接到同一网络)这比使用直接连接要复杂得多但是可以完成

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

答案 1 :(得分:0)

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

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

最简单的方法是电子邮件交换:javax.mail API紧凑但不是最简单的。 (特别是你可以像我一样轻松删除所有邮件。)