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

  #4  
Старый 14.07.2009, 00:04
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

и на сокетах )
Код:
uses winsock

const hos = 'google.com';

function POST(URL,PACKET:string):string;
var
 req{,data} : string;
 buf      : array[0..1500] of char;
 wData    : WSADATA;
 addr     : sockaddr_in;
 sock     : integer;
 error    : integer;
 phe      : PHostEnt;
begin
 Result := '';
 WSAStartup($0101, wData);
 phe := gethostbyname(PChar(string(host)));
 if phe = nil then begin
    WSACleanup;
    exit;
 end;
 sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if sock = INVALID_SOCKET then begin
    WSACleanup;
    exit;
 end;
 addr.sin_family := AF_INET;
 addr.sin_port   := htons(80);
 addr.sin_addr   := PInAddr(phe.h_addr_list^)^;
 error := connect(sock, addr, sizeof(addr));
 if error = SOCKET_ERROR then begin
    closesocket(sock);
    WSACleanup;
    exit;
 end;
 req := PACKET;
 if Send(Sock,pointer(req)^,length(req),0)=SOCKET_ERROR then exit;
 fillchar(buf,sizeof(buf),0);
 recv(Sock,buf,10000,0);//sizeof(buf
 closesocket(Sock);
 result:=buf;
end;

function ePOST(URL,_POST:string):string;
var req:string;
begin
 req:='POST '+URL+' HTTP/1.1'#13#10+
      'Host: '+host+#13#10+
      'User-Agent: Opera/9.24 (Windows NT 5.1; U; en)'#13#10+
      'Accept: */*;q=0.1'#13#10+
      'Accept-Encoding: gzip,deflate'#13#10+
      'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'#13#10+
      'Connection: Keep-Alive'#13#10+
      'Referer: http://vkontakte.ru/index.php'#13#10+
      'Content-Length: '+inttostr(length(_POST))+#13#10+
      'Content-Type: application/x-www-form-urlencoded'#13#10#13#10+_POST;
  result:=POST(URL,req);
end;

ePOST('http://google.com','a=b&c=d&f=g&');
 
Ответить с цитированием