Показать сообщение отдельно

  #7  
Старый 13.06.2010, 21:33
Faost
Новичок
Регистрация: 11.07.2009
Сообщений: 20
С нами: 8860535

Репутация: 2
По умолчанию

Код:
uses
  Windows,
  WinSock;



 var Sock: TSocket;
     addr: sockaddr_in;
     wsa: wsadata;
     host: PHostEnt;
     Get: string;
     avail_bytes: integer;
     buf: pointer;
     fset: TFDset;
     label 2, 3;
begin
 if WSAStartup(MAKEWORD(1, 1), wsa) <> 0 then ExitProcess(0);

 Sock := socket(AF_INET, SOCK_STREAM, 0);
 if Sock = INVALID_SOCKET then goto 3;

 addr.sin_family := PF_INET;
 addr.sin_port := htons(80);
 host:= GetHostByName('antichat.net'); //заменишь на свой
 PInteger(@addr.sin_addr.S_addr)^:= PInteger(host.h_addr^)^;

  if connect(Sock, addr, sizeof(addr)) <> 0 then goto 2;

   Get:= 'GET http://antichat.net HTTP/1.0' + #13#10 + #13#10; //заменишь на свой

   send(Sock, PChar(Get)^, Length(Get), 0);
   avail_bytes:= 0;

   FD_ZERO(fset);
   FD_SET(Sock, fset);

   if select(0, @fset, nil, nil, nil) <= 0 then goto 2;
   ioctlsocket(Sock, FIONREAD, avail_bytes);
   buf:= VirtualAlloc(nil, avail_bytes, MEM_COMMIT, PAGE_READWRITE);
   recv(Sock, buf^, avail_bytes, 0);

   MessageBox(0, buf, nil, 0); //buf - наши данные
   VirtualFree(buf, 0, MEM_RELEASE);

  2: CloseSocket(Sock);

  3: WSACleanUp();
end.

Последний раз редактировалось Faost; 13.06.2010 в 21:36..
 
Ответить с цитированием