![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]з.ы: я с клиент сокетом вообще плохо дружу и с потоками тоже.А программу очень хотелось бы доделать.