Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не могу получить ответ на запрос ТClientSocket!!! [D5, WinXP]


a-leksey ©   (2002-12-21 14:59:00) 

Послал запрос, а ответа нет???? Может с ДНС проблема, потому что после конеста в Socket.RemoteHost пустой. Хотя если пробовать конектиться по левым портам то коннект не происходит, знать к серверу запрос на коннект доходит....

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ClientSocket1.Host:="www.meta-ukraine.com";
ClientSocket1.Port:=80;
ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
var zapros:string;
begin
zapros:="GET http://www.meta-ukraine.com/index.htmlHTTP/1.0"+#10+"Accept: */*"+#10+"Referer: http://www.meta-ukraine.com"+#10+"Accept-Language: ru"+#10+"Proxy-Connection: Keep-Alive"+#10+"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"+#10"Host: www.meta-ukraine.com";
Socket.SendText(zapros);
Memo1.Lines.Add("---- Conecting ----");
Memo1.Lines.Add("from: "+Socket.LocalHost);
Memo1.Lines.Add("to: "+Socket.RemoteHost);
Memo1.Lines.Add("------ Send -------");
Memo1.Lines.Add(zapros);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;


Ketmar   (2002-12-22 16:32:00) [1]

>Kornet © (22.12.02 15:46)
>GET index.html, так как имя домена ты уже передаёшь в строке Host
можно и так. но не обязательно. в стандарте написано, что в GET вполне может быть полный адрес. главное, чтобы он совпадал с полем host %-). Опера, например, передает полный адрес всегда. кстати, User-Agent"а вполне можно выкинуть нафиг.

Satanas Nobiscum! 22-Dec-XXXVII A.S.


Kornet   (2002-12-22 15:46:00) [2]

Если отвлечься от технических деталей, то для начала мне бы хотелось прояснить с самим запросом. Фактом что запрос закончился является 2 (два)кода #10. После этого сервер начинает обрабатывать его. Во вторых как мне кажется не стоить использовать URI в GET запросе, т.е. должно быть так:
GET index.html, так как имя домена ты уже передаёшь в строке Host. Ну и в третьих - почему бы не использовать стандартные компоненты для работы с HTTP? Например, THTTP?


Digitman   (2002-12-22 14:26:00) [3]

На основании каких соображений ты поместил строчку

Socket.SendText(zapros);

в обработчик события ИМЕННО OnConnecting() ?

Почему не в OnConnect() ? Почему не в OnWrite() ?

От балды решение ? Первое что в голову пришло ? Или как ?
Поясни ход своих мыслей)


a-leksey   (2002-12-21 15:39:00) [4]

Ну, ребятки поткиньте советик...


Наверх

Титульная страница Поиск, карта сайта Написать письмо