|
接受部分(有个用户和密码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 [1] [2] 下一页 |