使用indy的IdTcpServer,IdTcpclient传输文件

来源: 作者: 发布时间:2007-12-29  
 

接受部分(有个用户和密码check,你取消就可以)
procedure TTCP_Server.IdTCPServerExecute(AThread: TIdPeerThread);
var
 FStream  : TFileStream;
 FileName  : String;
 CmdStr   : String;
begin
  CmdStr :=AThread.Connection.ReadLn();
  if CompareStr(Copy(CmdStr,1,6),'<SEND>')=0 then
   begin //1
    Delete(CmdStr,1,6);
    Cmd := '上传文件';
    FileName := CmdStr;
    if FileExists(ExtractFilePath(Application.ExeName)+FileName) then
      DeleteFile(ExtractFilePath(Application.ExeName)+FileName);
    try
     FStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+FileName,FmCreate);
     AThread.Connection.ReadStream(FStream,2048,true);
    Finally
     FStream.Free;
     AThread.Connection.Disconnect;
    end;
   end  //1
  else if CompareStr(Copy(CmdStr,1,6),'<AGET>')=0 then
   begin //2
    Delete(CmdStr,1,6);
    Cmd := '下载文件';
    FileName := CmdStr;
    if FileExists(ExtractFilePath(Application.ExeName)+FileName) then
      begin
       try
        FStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+FileName,FmOpenRead);
        AThread.Connection.WriteStream(FStream,True,False);
       Finally
        FStream.Free;
        AThread.Connection.Disconnect;
       end;
      end
    else
      begin
       AThread.Connection.WriteLn('Failed');
       AThread.Connection.Disconnect;
      end;
   end //2
  else if CompareStr(Copy(CmdStr,1,6),'<USER>')=0 then
   begin //3
    Delete(CmdStr,1,6);
    User := UpperCase(Trim(DecryptString(CmdStr,20504))); //CmdStr;
    if CompareStr(User,'XDM')=0 then
      begin
       Memo1.Lines.Add('User: '+User);
       CmdStr :='';
      end
    else
      begin
       Memo1.Lines.Add('User: '+User+' 非法登陆,已关闭连接');
       CmdStr := '';
       AThread.Connection.WriteLn('<Failed>');
       AThread.Connection.Disconnect;
      end;
   end  //3
  else if CompareStr(Copy(CmdStr,1,6),'<PASS>')=0 then
   begin //4


(阅读次数:
共2页: 上一页 1 [2] 下一页

上一篇:Delphi 7.0常用函数速查手册   下一篇:利用鼠标键盘钩子截获密码

[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。