LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1392|回复: 9

qq中的文件传输功能是怎么实现的呀?

[复制链接]
发表于 2006-5-26 17:36:19 | 显示全部楼层 |阅读模式
学了一阵子网络编程,终于把一大堆代码看完了,想也作点什么。忽然想起了win下qq的点对点文件传输,他到底是怎么实现的呀?我看的教程里面说的都是在局域网中双方都有固定ip,而且都在防火墙之内。如果在广域网环境下,分别在两个不同内网的两台机器应该如何沟通?
发表于 2006-5-26 18:11:26 | 显示全部楼层
这也就是为什么像QQ这样的软件要先注册个号码,然后登陆服务器。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-26 19:38:55 | 显示全部楼层
但是传输数据的时候呢?不是说两台机器直接通话吗?我有可能把这部分功能单拿出来吗?
回复 支持 反对

使用道具 举报

发表于 2006-5-26 23:09:15 | 显示全部楼层
服务器知道每个人的IP,传文件的时候要从服务器得到对方的IP,然后就可以点对点传输了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-27 18:06:57 | 显示全部楼层
啊,是这样啊。

那关于内网的问题呢?即使对方知道我的ip,但也是我的isp的地址,我在内网只有192.168.*.*这样的地址,他怎么找到我呀?
回复 支持 反对

使用道具 举报

发表于 2006-5-28 11:37:18 | 显示全部楼层
内网是用了nat转换或是代理上网的,直接连接可能会有问题,可能是客户端主动连接服务器段,并且这个连接始终是活跃的,这样服务器段就能将数据传到客户端了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-29 13:02:36 | 显示全部楼层
对了,nat的问题估计可以不用考虑。

看来没有一个服务器是作不了这样的东西了。

如果非要一台服务器的话,使用没有公网ip的机器可以吗?
回复 支持 反对

使用道具 举报

发表于 2006-5-29 18:06:21 | 显示全部楼层
没有公网的IP,就只能内网访问了,共网除非是有服务器作了DNAT转换,将网关的一个端口映射到内网服务器的一个端口上
回复 支持 反对

使用道具 举报

发表于 2006-5-30 07:16:22 | 显示全部楼层
想做点什么很简单, LumaQQ现在要做文件传输的功能, 有兴趣吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 16:52:43 | 显示全部楼层
兴趣当然有,就是不会作。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表