Java 与非'的计算机通信;t在同一网络上

Java 与非'的计算机通信;t在同一网络上,java,communicate,Java,Communicate,我想在不在同一网络上的两台计算机之间进行通信,我尝试使用套接字,但我只找到了在同一网络中进行通信的教程和示例。 我试图在stackoverflow上搜索,但我不清楚要搜索什么。 我想双向发送文本(聊天) -编辑-问题是,对我来说,我必须使用或做什么是模糊的,所以我不能再清楚地说我想为聊天应用程序发送双向文本(可能是日期),只是为了从中学习。 -编辑-要在两台机器之间通信,它们必须位于同一扩展网络上。唯一的其他选择是将数据保存到外部驱动器,例如USB驱动器,您可以连接到第二台机器并进行加载 您可以


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

-编辑-问题是,对我来说,我必须使用或做什么是模糊的,所以我不能再清楚地说我想为聊天应用程序发送双向文本(可能是日期),只是为了从中学习。
-编辑-

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


您可以使用套接字与具有Internet连接的任何其他计算机通信,前提是您的防火墙已配置为允许连接。防火墙的全部目的是防止未经授权的访问。我怀疑这是你真正的问题。如果您的防火墙阻止访问,您应该无法使用Java(google network hacking for Alternative;)绕过这一问题

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


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

您必须获得外部IP(有些站点在访问时为您提供此IP),并希望防火墙允许通信。通常应使用1000以上的端口。 应该有点对点库

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


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

请提供详细信息,否则问题将以含糊不清的方式结束。你说“不在同一个网络上”是什么意思?为什么要使用插座?什么样的双向通信-单向、可靠、安全等?你的目标是什么?详细信息请提供更具体的问题以及您遇到的问题的详细信息?计算机不能有相同的名称吗(套接字通过主机名连接?)?或者你可以使用IP地址吗?这不是我说的,但是计算机可以有相同的名称,只要它们有不同的域名和不同的外部IP地址。如果您在同一本地网络上有两台地址相同的计算机,则这是一个配置错误的网络。“您可以使用套接字与具有Internet连接的任何其他计算机通信”所以你说你可以通过IP地址连接到一台不需要在同一个网络中的计算机上的套接字?如果两台计算机都可以连接到internet,那么它们在同一个网络上(称为internet)哦,thx。但是我必须使用什么构造函数呢?新的套接字(ip、端口)或没有相同的名称以便我可以使用主机名?