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

  #4835  
Старый 08.11.2009, 17:07
Tribal_0_o
Новичок
Регистрация: 07.11.2009
Сообщений: 6
Провел на форуме:
35005

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

Цитата:
Сообщение от wolmer  
К примеру

Код:
 t:TSocket;
 send1:string;
 send1buf:array [0..5000] of char;
 recv1buf:array [0..5000] of char;
 dsize:Word;
 recvstr:string;
Код:
    send1:='GET http://site.ru/'+#13#10+
'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00'+#13#10+
'Host: site.ru'+#13#10+
'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
'Cookie: test=test1'+#13#10+
'Cookie2: $Version=1'+#13#10+
'Connection: Keep-Alive'+#13#10+#13#10;
    CopyMemory(@send1buf,pchar(send1),length(send1));
    send(t,send1buf,sizeof(send1buf),0);
    //В случае если мы напишем recv(t, recv1buf, 4096, 0);
    //То весь пакет не дойдет, поэтому мы связываемся с циклом
    repeat
     recv1buf:='';
     dSize:=recv(t, recv1buf, 4096, 0);
     recvstr:=recvstr+recv1buf;
    until (dSize = 0) or (dSize = SOCKET_ERROR);
Дальше в recvstr будет пакет в виде html
(#13#10 - перенос строки)
(при коннекте сервер нам дает знать что мы подключились но он нам не посылает пакет, он нам посылает пакет когда мы ему послали пакет (т.е. сервер отвечает на наши пакеты))
(писал прямо здесь, так что особо не ругаться на ошибки)
У меня "особенный сервер)" игры Lineage.И при конекте к серверу он сразу же посылат пакет.. Конект и просмотр этого пакета через TCPClient у меня получаться а в вот через Winsock не получалось.. Я получал Длину пакета. Но взяв из вашего примера :
Код:
recv1buf:='';
 recvstr:=recvstr+recv1buf;
Начал получать пакет целиком Спасибо=)
 
Ответить с цитированием