高分求socket传输文件的源代码(如果分不够,我可以在csdn上给你分)(100分)

  • 主题发起人 主题发起人 njcat
  • 开始时间 开始时间
N

njcat

Unregistered / Unconfirmed
GUEST, unregistred user!
我的具体要求是在两台pc机之间传输文件(大小不限),客户端和服务端最好在一起,就象qq
上传文件的那种最好了.要用socket来传输文件.
我试了很多例子,但是都似乎有错误,有些代码没有贴全,我是刚学网络编程序,所以要个比
较完整的例子比较好!
谢谢诸位了,我的可用分才200,所以先给100了,如果分不够,我只有在csdn上给你们分了!
邮件地址:meteorrain_ip@sohu.com[?]
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1548794
 
我需要socket的啊,这篇文章是讲的udp啊![:(]
 
呵呵,SOCKRT也可以分为TCP传输和UDP传输的啊
 
可惜啊,没有人愿意帮助初手
 
procedure TForm1.ClientSocket2Read(Sender: TObject;
Socket: TCustomWinSocket);
var len:integer;
temp:string;
begin
if stStatue=stgetFile then
begin
Len:=Socket.ReceiveLength;
Temp:=Socket.ReceiveText;
filem.Write(PChar(Temp)^,len); //filem是一个文件流
inc(allLen,len);
if allLen=getfilesize then //allLen是文件长度,你先传送过来
ShowMessage('文件接受完毕!');
end;

发送部分
const
MAX_LEN=2048;

var
iSen:integer; //iSen发送出去的长度
iSize:integer; //文件长度 最好是全局变量
buf:array[1..MAXLEN]of char;
senlen:integer; //每次应该发送的长度
ret:integer; //实际发送的文件长度
filen:TFileStream; //最好是全局变量

iSen:=0;
while iSen<iSize do
begin
FillChar(buf,MAX_LEN,0);
if iSize-iSen>MAX_LEN then senlen:=MAX_LEN
else senLen:=iSize-iSen;
filen.Position:=iSen;
filen.Read(buf,senLen);
ret:=ClientSocket1.Socket.SendBuf(buf,senLen);
inc(iSen,ret);
end;


 
接受答案了.
 
后退
顶部