1+1>2:利用Delphi的TClientSocket/TServerSocket进行文件传输,请参与!(200分)

  • 主题发起人 主题发起人 Juhao
  • 开始时间 开始时间
J

Juhao

Unregistered / Unconfirmed
GUEST, unregistred user!
目标:利用TClientSocket/TServerSocket控件进行Internet PC之间的多对一的文件传输。
   TServerSocket 的 ServiceType设为stThreadBlocking
请问:
   1. 能同时连接多少个客户端?
   2. 单个或多个客户端同时下载文件(可能下载相同的文件)的速度一般应为多少?
     相互之间有无影响?
   3. Delphi的这两个控件本身对处理这类问题是否有什么缺陷?
注: 可根据PC机上网的不同接入方式(Pstn,ISDN,Adsl等)来回答;
回答时请注明答案是估计还是实际测试所得!

谢谢你的参与!
 
为什么没有人回答呢?
是我没把问题描述清楚? 还是问题太过简单?
请告诉你的想法好吗?
 
我以前对这个很熟,不过现在代码都因为硬盘坏了不见了
多对一是肯定可以的,但是能支持多少客户端没怎么测试过
关键是要写一个自己的TServerClientWinSocket的线程
还要自己定义一个结构,文件传输最简单了先传一个文件大小
再传文件的数据。自己看看帮助吧,我以前也是这样弄懂的
 
多谢楼上的回答。
实际上文件的传输我都已实现,一对一的大文件传输已没问题。
问题是多个PC同时下载大文件不是很稳定。

我对TServerSocket的多线程传输处理的稳定性有点怀疑,
不知哪位大侠能对TServerSocket评点一二!
 
实现了文件传输并不代表已经真正解决问题
假如你是一个把文件分割成小块传输的,
比如每次是1024byte, 并不表示你每次接收
块的大小是1024,这可能是不稳定的原因,
因此你必须了解ThreadBlocking和TServerClientWinSocket
 
多谢Tassadar大侠!
我会加上完整包的判断再试试
另请教:
  两PC之间的Socket连接的建立第一次总不能成功,
是否是因为由于两者没有对方的路由? 如何程序建立此路由呢?
 
用文件流也不行?先发送流的大小.再发送流.接收的流就不断的合并.最后达到大小就合成.行不行?一对一我是试过行的.一对多就没试过了.这样会比文件分割成小块传输来得安全和方便.
 
既然没有高手愿意相助
那么结帖吧!
 
问题解决了没有,如果没有我这里刚好有一个例子可以给你参考
不过是用TIdServerSocket和TIdClientSocket的
 
楼上的各位能否将源码发给我看一下,谢谢!rlpcdk@163.com
 
也发给我一份,可以吗,谢谢eagel1010@hotmail.com
 
哈哈,我也正在关心这个东西,大家一起讨论哦。
 
我想关键是Client和Server之间的协议(自己定义的)

我也正在做这方面的东东
大家一起讨论吧
qq:183391597 写明Delphi Socket
 
Juhao兄,
你的文件传输代码能否寄我一份。。。
userstring@163.com
先谢过了。
 
Juhao大哥!
帮忙给我一份原代码把,我急求!!1!!
zhengli0015@163.com
 
一个利用WinSocket控件传送文件的Demo。下载[366K字节]
http://www.aidelphi.com/6to23/docu/transfile.zip
Socket2 用TIdTcpServer和TIdTcpClient做的文件传输的例子
http://www.wisdomcube.com/stuff/Socket2.rar
 
这有个我几年前写的教学的Demo,大家看看有无帮助。
http://www.lkinfo.net/SocketFile.rar
(只放两天)
 
建议:这样需要大量的连接的服务器端应该使用“完成端口”。
 
后退
顶部