• 2399阅读
  • 9回复

[提问]c/s架构下,如何端对端传文件 [复制链接]

上一主题 下一主题
离线whoami12131
 

只看楼主 倒序阅读 楼主  发表于: 2019-11-10
大佬们,想问一下问题,就是类似于qq的那种传文件的底层逻辑是如何做到的啊?
文件必须要存到服务器上,然后服务器再转发吗?
真心求教~~
离线20091001753

只看该作者 1楼 发表于: 2019-11-10
QQ有2种模式,在线传输,离线传输。
离线传输,就是先把文件传到服务器上。
在线传输,就是直接发送给对方。
(づ ̄ 3 ̄)づ
离线yanwuyue

只看该作者 2楼 发表于: 2019-11-11
连个都在内网中,怎么直接传
都是上传到服务器上的,区别是
1.在线模式:双方client绑定,数据通过服务器直接中转给对方
2.离线模式:先上传到服务器上,然后对方从服务器上下载
离线圣域天子

只看该作者 3楼 发表于: 2019-11-11
在线传输是不经过服务器的。端与端之间是打洞方式实现的。
离线20091001753

只看该作者 4楼 发表于: 2019-11-11
回 yanwuyue 的帖子
yanwuyue:连个都在内网中,怎么直接传
都是上传到服务器上的,区别是
1.在线模式:双方client绑定,数据通过服务器直接中转给对方
2.离线模式:先上传到服务器上,然后对方从服务器上下载 (2019-11-11 09:01) 

百度“内网穿透"
(づ ̄ 3 ̄)づ
离线yanwuyue

只看该作者 5楼 发表于: 2019-11-11
首先你的QQ是无权也无法修改你的路由器的配置,端口装发这条路是行不通的,
第二反向代理,花生壳一类,只是有人帮你直接中转了



离线whoami12131

只看该作者 6楼 发表于: 2019-11-12
回 20091001753 的帖子
20091001753:QQ有2种模式,在线传输,离线传输。
离线传输,就是先把文件传到服务器上。
在线传输,就是直接发送给对方。 (2019-11-10 21:30) 

在线传输会由于防火墙原因无法与对方实现TCP通信,若需要关闭防火墙会影响用户体验,目前倾向于离线传输,但是离线传输要如何实现过程匹配(上传到云端的文件要有识别,谁发的,谁应该下载)?
离线whoami12131

只看该作者 7楼 发表于: 2019-11-12
回 yanwuyue 的帖子
yanwuyue:连个都在内网中,怎么直接传
都是上传到服务器上的,区别是
1.在线模式:双方client绑定,数据通过服务器直接中转给对方
2.离线模式:先上传到服务器上,然后对方从服务器上下载 (2019-11-11 09:01) 

可以具体阐述在线传输如何进行client绑定吗,这里不是很明白;还有就是,离线传输的话,A用户文件上传到服务器上,B用户下载的时候要如何确定自己应该下载哪一个文件?这些都是疑点,还没有解决呢
离线whoami12131

只看该作者 8楼 发表于: 2019-11-12
回 圣域天子 的帖子
圣域天子:在线传输是不经过服务器的。端与端之间是打洞方式实现的。 (2019-11-11 10:25) 

请问一下,打洞具体是什么逻辑过程呢?打洞的过程在Qt中应该如何实现呢?
离线圣域天子

只看该作者 9楼 发表于: 2019-11-13
你是C/S,在同一网段下的局域网内,这个就要方便非常多了,不需要internet中的打洞技术即可实现:

服务器相互告知一下对方的IP,双方客户端有一方变成服务端,打开侦听端口,另一方作为客户端直接连接即可。

快速回复
限100 字节
 
上一个 下一个