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

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

ClientSocket в цикл ? [D6, WinXP]


Morph ©   (2004-04-15 00:30:00) 

procedure TMainForm.BitBtn2Click(Sender: TObject);
begin
ClientSocket1.Open;
ClientSocket1.host := '213.248.55.226';
ClientSocket1.port := 80;
Memo1.Clear

end;
procedure TMainForm.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
 var q:string;
     i:Integer;
 begin
I:=0;
Memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
ClientSocket1.Active := false;
If pos('<H4>',Memo1.text)=0 then
Begin
Stringgrid1.Cells[3,i+1]:='Yes'
End
Else
Begin
Stringgrid1.Cells[3,i+1]:='No'
End
end;

procedure TMainForm.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
 var acc,s:STring;
 i:integer;
begin
i:=0;
acc:=Stringgrid1.Cells[0,i+1];
S:='GET /cgi-bin/wakeup.cgi?acc='+acc+'HTTP/1.0'+#13#10+
'Accept: */*'+#13#10+
'Accept-Language: ru'+#13#10+
'User-Agent: Mozilla/4.0'+#13#10+
'Host: game.uoo.ru'+#13#10#13#10;
ClientSocket1.Socket.SendText(S);
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Stop:=True;
end;
end.

Есть примерно такой код.
Был бы благодарен услышать  ответ на такой вопрос:
Есть ClientSocket1Connect ,нужно чтобы после нажатия битбатн в Get строку
S:='GET /cgi-bin/wakeup.cgi?acc='+acc+'HTTP/1.0'+#13#10+
брался ACC из стринггрида коннектился и отправлялся потом самое важное менялся на следущий Acc и коннектился (или посылал) GeT  с новым акком и так пока не кончаться логины(акки) в стринггриде.

Тоесть...что бы Таблица выглядела так
Login  Yes
Login1  No
Login2  No
Login3  Yes

Надеюсь обьяснил понятно...у меня всегда с этим проблемы :)
Надеюсь на помощь.


Morph   (2004-04-16 00:18:00) [1]

Пожалуйста скомпильте.
Все имена стандартные.Нужно добавить только StringGrin на 4 стобца...первый(который нулевой) заполнить списком
lol
123
lollol123
asd
Я уже  и не знаю в чем дело.((


Rouse_   (2004-04-15 23:54:00) [2]

WSAECONNREFUSED
(10061)
Connection refused.
No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.


Morph   (2004-04-15 23:51:00) [3]

Ларчик просто открывался :)

Я же Хостом забыл снять ЛокалХост :)

сорри :)

Кстати...у меня обящательное проксирование стоит...Сам прокси не ставиться в бровзере...но весь диалап через проксю идет..так она мне режет ответ
HTTP/1.1 200 OK
Date: Thu, 15 Apr 2004 19:55:03 GMT
Server: Apache/1.3.27 (Win32)
Connection: close
Content-Type: text/html

а саму хтмлку не показывает :)
Как искоренить Зло ?


Morph   (2004-04-15 23:48:00) [4]

Спасибо за ответы.Признаетлен.
Вот сегодня запустил апачь на своей машине.
И просто поменял гет на перебор акков и туда же вместо акка втулил в пару мест index.html.ca  и .fr
Вобщем он у меня все нашел...pos он у меня искал HTTP/1.1 200
выглядит все это ужасно , но покажу :)
Щас опять поменял Гет строку на то что мне нужно и Pos на <h3>
и по диалапному инето ни чего не работает....
Софт ругаеться... Asynchronus socket error 10061
подскажите ?
procedure TMainForm.BitBtn2Click(Sender: TObject);
begin
BitBtn2.Visible:=False;
ClientSocket1.Open;
Memo1.Clear
end;

procedure TMainForm.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
 var acc,s:STring;
begin
If p<ListBox1.Count-1  then
begin
acc:=ListBox1.Items[p];
p:=p+1;
S:='GET /cgi-bin/wakeup.cgi?acc='+acc+' HTTP/1.0'+#13#10+
'Accept: */*'+#13#10+
'Accept-Language: ru'+#13#10+
'User-Agent: Mozilla/4.0'+#13#10+
'Host: game.uoo.ru'+#13#10#13#10;
ClientSocket1.Socket.SendText(S);
Memo2.Lines.Add(acc);
end
end;

procedure TMainForm.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
 begin
 Memo1.Clear;
Memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
ClientSocket1.Active := false;
ClientSocket1.Open;
If pos('<H3>',Memo1.text)=1 then
Begin
StGrid.Cells[3,p]:='YES'
End
Else
Begin
StGrid.Cells[3,p]:='No'
End;
end;


Digitman   (2004-04-15 11:37:00) [5]


> инкриминируешь счетчик


эт ты хорошо сказанул)

"в вину подозреваемому инкриминируется счетчик" ...)


Fredericco   (2004-04-15 11:22:00) [6]


> ClientSocket1.Open;
> ClientSocket1.host := '213.248.55.226';
> ClientSocket1.port := 80;

Зеркально поменять местами.


> Memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
> ClientSocket1.Active := false;

Уверен что все пришло?

Когда все прочел, делаешь дисконнект. И либо отправляешь сам себе PeekMessage, либо ставишь таймер на небоьшой интервал. В любом случае, любо в обработке таймера, либо обработчике сообщения, инкриминируешь счетчик и делаешь снова коннект. По счетчику подставляешь АСС.


Morph   (2004-04-15 00:43:00) [7]

з.ы: я с клиент сокетом вообще плохо дружу и с потоками тоже.А программу очень хотелось бы доделать.


Наверх

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