WinSock передача файла (Передача файла через сокеты)

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

K_NoW

VIP

K_NoW

VIP
3 Июн 2016
514
195
Демонстрация простой передачи файлов через TCP сокеты. В инете подобного вроде бы нет. Код без всякого рода указателей на файл и т.д. Простая передача и прием.

Клиент (передатчик):
Код:
 program Project1;   
 
 {$APPTYPE CONSOLE}   
 
 uses   
     windows,   
     winsock;   
 
 const   
 Port = 2222;   
 IP = '10.10.10.10.';   
 Name = 'C:\11.exe';   
 var   
 s:TSocket;   
 WSA:TWSAData;   
 addr:TSockAddr;   
 
 procedure SendFile(filename:string);   
 var   
 MyFile : file;   
 n : integer;   
 Buff : array [1..127] of byte;   
 begin   
     FileMode:=0;   
     AssignFile(MyFile, filename);   
     Reset(MyFile, 1);   
     while not eof(MyFile) do begin   
     blockread(MyFile,buff,sizeof(buff),n);   
     send(s,buff,sizeof(buff),0);   
 //  sleep(5);   
     end;   
 writeln('Sended');   
 end;   
 
 function InstallConnect : boolean;   
 begin   
 WSAStartup(MakeWord(2, 0), WSA);   
 s := Socket(PF_INET, SOCK_STREAM, 0);   
 addr.sin_family := AF_INET;   
 addr.sin_port := htons(port);   
 addr.sin_addr.S_addr := inet_addr(ip);   
 if (connect(s, Addr, SizeOf(Addr)) = 0) then   
 result:=true else result:=false;   
 end;   
 
 procedure Close;   
 begin   
 CloseSocket(s);   
 WSACleanup;   
 end;   
 
 begin   
 If InstallConnect then   
 SendFile(name);   
 Close();   
 readln;   
 end.
Получатель
Код:
 program Project1;   
 
 {$APPTYPE CONSOLE}   
 
 uses   
     windows,   
     winsock;   
 
 const   
 Port = 2222;   
 IP = '10.10.10.10.';   
 Name = 'C:\11.exe';   
 var   
 s:TSocket;   
 WSA:TWSAData;   
 addr:TSockAddr;   
 
 procedure SendFile(filename:string);   
 var   
 MyFile : file;   
 n : integer;   
 Buff : array [1..127] of byte;   
 begin   
     FileMode:=0;   
     AssignFile(MyFile, filename);   
     Reset(MyFile, 1);   
     while not eof(MyFile) do begin   
     blockread(MyFile,buff,sizeof(buff),n);   
     send(s,buff,sizeof(buff),0);   
 //  sleep(5);   
     end;   
 writeln('Sended');   
 end;   
 
 function InstallConnect : boolean;   
 begin   
 WSAStartup(MakeWord(2, 0), WSA);   
 s := Socket(PF_INET, SOCK_STREAM, 0);   
 addr.sin_family := AF_INET;   
 addr.sin_port := htons(port);   
 addr.sin_addr.S_addr := inet_addr(ip);   
 if (connect(s, Addr, SizeOf(Addr)) = 0) then   
 result:=true else result:=false;   
 end;   
 
 procedure Close;   
 begin   
 CloseSocket(s);   
 WSACleanup;   
 end;   
 
 begin   
 If InstallConnect then   
 SendFile(name);   
 Close();   
 readln;   
 end.
© Gravitas
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя