socket 多线程传输文件
求:用socket多线程传输文件的例子 问题点数:0、回复次数:17Top
1 楼flygkimjplh(没有什么特别 (:)回复于 2003-09-03 12:30:38 得分 0
以前也想过这样的方法啊! 但是没有成功啊!
帮你UP一下Top
2 楼missdeer(思鹿)回复于 2003-09-05 14:59:52 得分 0
upupTop
3 楼smallflaybird(bird鸟)回复于 2003-09-05 15:17:38 得分 0
多线程传输一个文件给一个客户端还是多个用户同时来服务端下载文件?如果是第一种的话根本没有必要这么干.这么干的话根本就是无意义的.第二种的话只要声明一个文件传输的类就可以了Top
4 楼fronm(时间)回复于 2003-09-05 21:21:51 得分 0
upTop
5 楼missdeer(思鹿)回复于 2003-09-06 11:48:20 得分 0
to smallflaybird(bird鸟) :
请问为什么第一种的话就根本没有必要这么干呢,如果是一个大文件,还是有点用的吧?第二种的话,可不可以把思路讲清楚一点,是不是声明一个文件传输类,然后每一个客户的请求都创建一个实例来负责传输?
不好意思,问题菜了点。Top
6 楼kingcaiyao(aking)回复于 2003-09-06 13:03:25 得分 0
将服务器端设置成为阻塞模式,然后新写一线程类用来处理文件传输。每当有一客户传输进就会开辟一线程来处理,我有一篇文章对你会大有帮助的:
http://www.csdn.net/develop/Read_Article.asp?Id=19882
Top
7 楼klfbaby()回复于 2003-09-08 17:30:46 得分 0
是一台服务器向多个终端主机(可能大几百台),服务器端用的是clientsocket,是写在线程里的 ,主机端用的是serversocket 。设了五个线程并发,每台机器分配一个线程,其余的机器处于等待中,当一个线程结束后再起来朝另外一台机子发文件,传文件的时候,由于连接各终端主机的网络限制,我用的是分块传输,即打开一个文件,获得文件句柄,然后读文件,比如说每次读20000字节,传出去以后再读再传,我用的打开方式是handle = FileOpen(FileName,fmShareDenyNone),要用共享模式打开,否则该文件并发只能打开一次,第二次就打不开了。我serversocket没有设成阻塞模式(我试过阻塞模式,好像没什么效果),现在当单线程向一台机子传输文件时一点问题没有,但多线程向多台传时不稳定
Top
8 楼mme(dog)回复于 2003-09-10 14:24:09 得分 0
呵呵,不稳定?怎么个不稳定法?Top
9 楼smallflaybird(bird鸟)回复于 2003-09-11 15:38:36 得分 0
其实诸位建议楼主去看一下bit torrent的VC的改良版代码.看过之后就会觉得学习到了很多的东西.至少我调试过了八九百个用户链上来下载同一个电影的时候服务器不会死掉.Top
10 楼klfbaby()回复于 2003-09-12 09:25:03 得分 0
楼上兄弟能否给我发一个,谢谢,
klfbaby@sina.comTop
11 楼supwjhuLoveCjj(常来看看)回复于 2003-09-12 10:19:53 得分 0
bit torrent?给我和楼主一个下载的地址Top
12 楼leapmars(流铭)回复于 2003-09-12 14:17:27 得分 0
MarkTop
13 楼ljyt(罗云)回复于 2003-09-12 15:39:34 得分 0
也发我一个。早就想见识一下了。
ljytxj@yahoo.com.cnTop
14 楼binbin(破坏分子)回复于 2003-09-12 15:42:04 得分 0
BT是一个开放源码软件,自己去下就是了.Top
15 楼asimpleman(simple_man)回复于 2003-09-15 15:01:56 得分 0
gzTop
16 楼zhutaozhi53(云雾)回复于 2003-09-16 15:01:30 得分 0
在哪里可以下啊Top
17 楼maxemhe(小资)回复于 2003-09-17 14:48:38 得分 0
http://sourceforge.net
可以下载,这就是著名的开放源码组织的基地Top




