0

我知道我的 IP 地址,以及我朋友的 IP 地址。如何在两台机器之间传输对象/文件?我是一名高级 Java 程序员,但以前从未使用过网络。

编辑:我现在正在使用一个名为 jnmp2p ( http://code.google.com/p/jnmp2p/ ) 的 API。当我使用内部 IP 时它工作正常,但当我提供外部 IP 时它会失败。

如何连接到不在我的专用网络上的计算机?

4

2 回答 2

4

如果您正在寻找两个 java 应用程序之间的通信并且不想干涉底层网络细节,那么您可以使用以下两种方法,具体取决于您正在处理的应用程序的类型。

  • 如果两个应用程序(在两台机器上)都是 java 独立应用程序,那么RMI是最好的选择。从这些链接 ( 1 , 2 )中查看基础知识
  • 如果您的应用程序(接收文件/对象)是 Web 应用程序,那么您可以在服务端编写 Servlet,然后编写客户端应用程序以将文件/对象(二进制)发送到服务器。Commons FileUpload是用于此目的的非常流行的库。
于 2012-11-08T08:19:30.143 回答
0

jnmp2p 的作者在这里。我不再维护图书馆,因为我已经转移到其他事情上。不过我有一些意见。

与您的专用网络之外的 IP 进行点对点通信是一个难题。这是因为两端的状态 NAT 和防火墙已经变得司空见惯,这会阻止您直接在机器之间建立连接。

例如,Skype 使用会合服务,其中两台机器都启动到第三台机器的出站连接并通过该服务进行通信。除了设置额外的基础设施之外,任何对等解决方案都将仅限于 NAT 内的子网,因此 JNMP2P 或 RMI(经过全面修改)等解决方案将是您的最佳选择。

于 2013-01-25T08:33:59.583 回答