我正在寻找一种简单的方法来实现这个场景:
假设我有两台机器,我想在它们之间共享数据。这些机器的位置/地址可以随时更改。我想让这两台机器都登记到一个中央服务器上,以宣布它们的可用性。两个系统中的一个想要从另一个系统中拉出一个文件。我知道我可以让接收器系统向服务器发出请求,然后服务器从源请求文件,提取文件,然后将其提供给请求者。然而,从带宽的角度来看,这似乎是低效的。该文件将被传输两次。是否有一个系统可以让信源直接将其广播到信宿?
不能保证端口转发,如果系统在防火墙后面,等等。我不知道有什么办法。
谢谢。
发布于 2010-09-15 05:06:35
当机器A想要向机器B发送数据时,A会向中央服务器C发送一个请求。C向B请求许可。如果接受,C会将B的IP和端口提供给A。A尝试直接连接到B。如果失败(即,如果B位于路由器/防火墙之后),则A将失败通知C。然后,C将A的IP和端口提供给B。B尝试直接连接到A (它应该能够穿过B的防火墙/路由器)。如果任一连接都成功,则A可以直接向B发送数据。如果两个连接都不成功(即,如果A也在防火墙/路由器后面),则C必须充当A和B之间所有传输的代理。
https://stackoverflow.com/questions/3710187
复制相似问题