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

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

ClientSocket!!!!! [D6, WinXP]


oduvan ©   (2003-08-24 17:01:00) 

Вообщем есть код:


c.Host:="wwwkbp";
c.Port:=80;
c.Open;

st:="action=gettree";
c.Socket.SendText("POST /admin/service_lab/prodkernel.php HTTP/1.0"+#13#10);
c.Socket.SendText("Host: wwwkbp"+#13#10);
c.Socket.SendText("User-Agent: Super User Agent"+#13#10);
c.Socket.SendText("Content-Type: application/x-www-form-urlencoded"+#13#10);
c.Socket.SendText("Content-length: "+inttostr(length(st))+#13#10);
c.Socket.SendText("Referer: http://127.0.0.1/"+#13#10);
c.Socket.SendText(#13#10);
c.Socket.SendText(st);
c.Socket.SendText(#13#10);


Так вот , этот код не работает, только потому, что сокет не успевает сделать коннект, и все остальные команды, после

c.open

не обрабатываются. Как сделать ожидание соединения, если его нет, то типа окошко (Подождите пожалуйста), а потом, после соединения, посылаются данные.

??? Как это сделать?


SergP   (2003-08-24 18:18:00) [1]

Когда можно будет записывать отправляемые данные в TClientSocket, он сгенерирует событие OnWrite и запрос в принципе можно было бы отправить в самом обработчике.


oduvan   (2003-08-24 17:05:00) [2]

ОООО!

Вот так сработало


c.Host:="wwwkbp";
c.Port:=80;
c.Open;

while not с.Active do
begin
Application.ProcessMessages;
end;

st:="action=gettree";
c.Socket.SendText("POST /admin/service_lab/prodkernel.php HTTP/1.0"+#13#10);
c.Socket.SendText("Host: wwwkbp"+#13#10);
c.Socket.SendText("User-Agent: Super User Agent"+#13#10);
c.Socket.SendText("Content-Type: application/x-www-form-urlencoded"+#13#10);
c.Socket.SendText("Content-length: "+inttostr(length(st))+#13#10);
c.Socket.SendText("Referer: http://127.0.0.1/"+#13#10);
c.Socket.SendText(#13#10);
c.Socket.SendText(st);
c.Socket.SendText(#13#10);


Хочу посоветоваться, правильно ли я сделал? :)


Наверх

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