分别通过代理服务器上internet,当B想通过A将一个文件传给C时,面临着net通讯的问题,请问如何解决,请提供思路。
B(Ftp put) ==>A;
C(Ftp get) <==A.
使用remoteing技术,可以实现
如果一定要做个程序实现的话:
做一个服务程序放在A上,B和C都连到A上的服务程序,实现文件传输。就象QQ传送文件一样,不管客户端从哪儿连过来都可以。
1)A中存有B和C的标识和动态IP:{b_flag,b_ip},{c_flag,c_ip},其中b_flag和c_flag是固定的,b_ip和c_ip是每次连接动态生成的。
2)B和C每次连接就自动更新A中自己的动态IP信息。B和C中要做一个更新A中信息的小程序。
3)有了前两步,转发数据就比较方便了。B连上A找C的c_ip,即可建立B和C的连接,实现数据传递。同理,C——>B也一样。
问题是实现c,b的直接连接,可以在b,c上设置反向代理就行了。像我现在的ip的动态的,并且我的机子也是通过proxy上网的,我在proxy上设置了反向代理,比如把从外网来的21的端口的数据包都发向内网的192.168.1.15(我的IP),这样b,c的连接就建立起来了。
由于b的Ip不固定,这时又要b与a可以通信,在b的外网ip改变的时候通知a,这样,c通过a得到b的ip后就可以直接与b通信了。
这个具体和什么语言,平台无关,是一个底层通信的问题。