当前位置:编程学习 > C#/ASP.NET >>

webqq中是如何给好友传送文件的

我要用ASP.NET做个仿webqq的程序,现在想给好友传送文件,有点无从下手,好友间是怎么传送文件的,有没有具体点的例子啊? WebQQ  --------------------编程问答-------------------- 你太厉害了 自己做的webqq,我也好像做一个 ,可以介绍一下思路吗 --------------------编程问答-------------------- 如果你要仿这些功能,就必须精通网络协议。现在很多人,都未必能够了解到皮毛。现在的开发工具都把人给同化了! --------------------编程问答-------------------- web方式就是上传下载呗,上传到临时目录中,然后把下载链接发给对方 --------------------编程问答-------------------- 没有用过webqq。你给介绍一下webqq中“给好友传文件”的操作流程好吗? --------------------编程问答-------------------- 先询问好友是否接受我发的文件,如果接受就开始传送给对方,如果拒绝则无法传送。但是怎么做呢?三楼的大哥可以说详细点不? --------------------编程问答--------------------
引用 5 楼 SAN7369959600 的回复:
先询问好友是否接受我发的文件,如果接受就开始传送给对方,如果拒绝则无法传送。但是怎么做呢?三楼的大哥可以说详细点不?


其实就是一个请求的问题,可以是用户先发送一个请求,另一个用户收到后操作,然后再返回,如果同意就上传文件。   简单例子说明:在Session总有一个sendfile(应该是本用户对应每一个好友都有,这只是简单说明),初始值为false,用户发起请求发送文件时候,判断sendfile是否是true,如果是false,就推送请求到好友那,让好友选择。如果是true,就直接上传文件到服务器,然后在推送下载链接到好友那。webQQ都是基于长连接的 --------------------编程问答--------------------
引用 5 楼 SAN7369959600 的回复:
先询问好友是否接受我发的文件,如果接受就开始传送给对方,如果拒绝则无法传送。但是怎么做呢?三楼的大哥可以说详细点不?

你说到了一点点,可以有助于我猜测多一点。

实际上对于一个大公司、用户很多而设备有限的公司,他不会是想当然地去搞什么“给所有客户保存文件”这种东西的。文件在服务器端是“不落地”的!

从你的描述实际上我还是无法猜测webqq是如何设计的。因为你没有描述出两个会话之间的相互等待、相互交换通信的真正控制逻辑。你只是描述了一点点,我来猜测一下,可能的一种设计是:

.当接收文件用户同意发送文件用户发送文件后,开始下载文件。而此下载文件请求就会被挂起(或者叫做异步)。
.发送方发送文件,此时服务器对于收到的文件内容,会从网站进程的内部字典中找到对应接收方的Stream,并将内容直接写入此Stream。然后(上传文件获取完毕)时也关闭接收方的Stream。

要注意,一个大公司的IM,最起码的设计上概念是:这种东西是不落地的。不是一方把数据仍到数据库里,另一方再去数据库里查询。只有搞OA得程序员才会这样想。真正的通讯系统,这种功能是不落地的,直接把InputStream的数据内容写入另一个客户的OutputStream就行了。 --------------------编程问答-------------------- 我们站在接收文件的用户角度,
1. 他忽然收到服务器的一个消息:有人要给传文件。
2. 他显示了对话页面,显示文件内容,让用户选择是否接收。同时已经提供了一个下载路径。
3. 如果拒绝发送,页面直接给服务器提交一个“拒绝”信息就行了;如果同意下载,页面直接使用 windows.open 命令去打开这个下载url就行了。


我们站在发送文件的用户角度:
1. 他在页面上选择一个文件,并且以Ajax方式发送申请给服务器。(此时并不提交此文件内容)。
2. 他忽然得到了服务器的一个消息:有人已经使用window.open打开了网页等待下载,要下载的文件是......。
3. 他判断此欲下载文件确实与当前所选择的文件相符,于是提交这个文件到服务器。


但是在服务器端,你要在上述两个过程中“打通”他们,保证文件不需要落地(不需要占用磁盘)。

保证数据不落地,才符合腾讯公司的设计人员的水平。而那种只会把文件保存到磁盘或者数据库的,通常是OA程序员,需要学习更多的软件设计知识才能设计 IM 的程序。 --------------------编程问答-------------------- 以上的传送流程,只是我的猜测。我没有使用过webqq。

只有把操作流程的细节弄明白了,你才能看出底层技术上的差别。很多程序员的问题就在于不重视用户操作流程和用户体验上的设计,以为这个没有技术。其实正是因为技术上只知道一点“增删改查”,而不重视通讯、美工等等技术,才会做出千篇一律的OA来,而做不出好的应用软件。 --------------------编程问答-------------------- 他显示了对话页面,显示文件内容,让用户选择是否接收  -->  他显示了对话页面,显示文件摘要信息,让用户选择是否接收

所谓IM(及时通讯),关键就在“及时”二字上。如果你看到腾讯QQ没当发送文件时,延时一段时间对方才收到请求,或者对方都同意接收文件之后等了半天才开始下文件,那么腾讯公司早就倒闭了。因为及时通讯技术关键是让用户有“及时通讯”的感觉,不是那种“把文件传送到文件服务器,然后另外一个客户端去下载”这么简单。 --------------------编程问答-------------------- 受益匪浅..  --------------------编程问答--------------------
引用 2 楼 qingfeng_wu 的回复:
如果你要仿这些功能,就必须精通网络协议。现在很多人,都未必能够了解到皮毛。现在的开发工具都把人给同化了!

此楼回答大赞。。。。。。。。。。工具越多人越懒惰。。。。。。 --------------------编程问答--------------------
引用 10 楼 sp1234_maJia 的回复:
他显示了对话页面,显示文件内容,让用户选择是否接收  -->  他显示了对话页面,显示文件摘要信息,让用户选择是否接收

所谓IM(及时通讯),关键就在“及时”二字上。如果你看到腾讯QQ没当发送文件时,延时一段时间对方才收到请求,或者对方都同意接收文件之后等了半天才开始下文件,那么腾讯公司早就倒闭了。因为及时通讯技术关键是让用户有“及时通讯”的感觉,不是那种“把文件传送到文件服务器,然后另外一个客户端去下载”这么简单。

大哥说的很详细,你用过QQ传文件的吧?其实我想要的效果和那个差不多。这周要交啊,烦烦烦 --------------------编程问答--------------------
引用 13 楼 SAN7369959600 的回复:
Quote: 引用 10 楼 sp1234_maJia 的回复:

他显示了对话页面,显示文件内容,让用户选择是否接收  -->  他显示了对话页面,显示文件摘要信息,让用户选择是否接收

所谓IM(及时通讯),关键就在“及时”二字上。如果你看到腾讯QQ没当发送文件时,延时一段时间对方才收到请求,或者对方都同意接收文件之后等了半天才开始下文件,那么腾讯公司早就倒闭了。因为及时通讯技术关键是让用户有“及时通讯”的感觉,不是那种“把文件传送到文件服务器,然后另外一个客户端去下载”这么简单。

大哥说的很详细,你用过QQ传文件的吧?其实我想要的效果和那个差不多。这周要交啊,烦烦烦

毕业设计吗?
直接在服务器端中转,反正保证演示成功就行了 --------------------编程问答--------------------
引用 14 楼 ltcszk 的回复:
Quote: 引用 13 楼 SAN7369959600 的回复:

Quote: 引用 10 楼 sp1234_maJia 的回复:

他显示了对话页面,显示文件内容,让用户选择是否接收  -->  他显示了对话页面,显示文件摘要信息,让用户选择是否接收

所谓IM(及时通讯),关键就在“及时”二字上。如果你看到腾讯QQ没当发送文件时,延时一段时间对方才收到请求,或者对方都同意接收文件之后等了半天才开始下文件,那么腾讯公司早就倒闭了。因为及时通讯技术关键是让用户有“及时通讯”的感觉,不是那种“把文件传送到文件服务器,然后另外一个客户端去下载”这么简单。

大哥说的很详细,你用过QQ传文件的吧?其实我想要的效果和那个差不多。这周要交啊,烦烦烦

毕业设计吗?
直接在服务器端中转,反正保证演示成功就行了
课程设计 --------------------编程问答-------------------- 如果不追求效率就:
A upload to 服务器
B download from 服务器 --------------------编程问答--------------------
引用 16 楼 zxy397472251 的回复:
如果不追求效率就:
A upload to 服务器
B download from 服务器
大哥能详细点不?给点代码什么的,谢谢啦
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,