两个任意来源之间的文件/数据传输

时间:2010-09-14 15:06:25

标签: language-agnostic sockets transport

我正在寻找一种实现此方案的简单方法:

假设我有两台机器,我想在它们之间共享数据。这些机器的位置/地址可以随时更改。我希望两台机器都能检入中央服务器以宣布它们的可用性。两个系统中的一个想要从另一个系统中提取文件。我知道我可以让接收系统向服务器发出请求,然后服务器从源请求文件,将其拉出,然后将其提供给请求者。但是,从带宽的角度来看,这似乎效率低下。该文件将被转移两次。是否存在可以将信号源直接广播到接收器的系统?

如果系统位于防火墙等后面,我无法保证端口转发等功能。我不知道方法。

感谢。

1 个答案:

答案 0 :(得分:2)

当计算机A想要将数据发送到计算机B时,A会向中央服务器C发送请求。 C要求B获得许可。如果接受,C会将B的IP和端口提供给AA尝试直接与B建立联系。如果不成功(即,如果B在路由器/防火墙后面),则A会通知C失败。 C然后将A的IP和端口提供给BB尝试直接连接到A(应该能够通过B的防火墙/路由器)。如果任一连接成功,则A具有直接连接以将数据发送到B。如果两个连接都不成功(例如,如果A也在防火墙/路由器后面),那么C必须充当AB之间所有传输的代理