Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Внизвопрос по TIdTcpServer Найти похожие ветки
← →
po4ti novi4ok (2006-06-25 13:14) [0]есть сервер и клиент, с клиентом вроде разобрался, а вот с сервером возникла одна небольшая загвоздка...
При старте приложения сервер автоматически запускается, и если в течении одной секунды никто не приконнектится, то нужно задать определенные параметры... проблема состоит в том как узнать что к серверу никто не приконнектился? может у этого сервера есть там свойство какое-то, я его просто проглядел, подскажите пожалуйста как эту проблему решить...
использую Indy10...
← →
po4ti novi4ok (2006-06-26 13:51) [1]может кто сталкивался все-таки с этой проблемой, помогите пожалуйста найти решение...
← →
qqq111 (2006-06-26 14:49) [2]Через евент... самое простое
← →
po4ti novi4ok (2006-06-27 10:10) [3]не получается ни через события, ни через флаги...
делаю так.......
Server: TIdTcpServer;
.......
function start: boolean;
begin
i:=0;
....
Server.Active:=true;
sleep(1000);
if i<>1 then begin
//тут я задаю параметры которые нужно выставить если к серверу никто не приконнектился
end;
end;
procedure Server.OnExecute;
begin
i:=1; //поидее это отдельный поток но попадает сюда только когда выполнится f.start
end;
события соответственно также реагируют... может кто-нибудь подскажет как эту проблему решить...
← →
qqq111 (2006-06-27 10:58) [4]у меня отдельный класс на сервер и .. я туда ставлю еще параметр флаг... устанавливаю в в старте сервера параметр скажем фалзе... далее при возникновении событи онконект просто в нем меняю флаг на тру... и все..
← →
po4ti novi4ok (2006-06-27 11:09) [5]т.е., я правильно понял:
TMyClass
Server: TIdTcpServer;
i: boolean;
......
a: TMyClass;
......
a.Server.Active:=true;
a.i:=false;
Как ты ловишь OnConnect, не подскажешь?
← →
Deka © (2006-06-28 10:12) [6]Сделать флаг. Установить (сбросить его). Завести таймер на нужное время. При коннекте поменять сбросить (установить) флаг. При срабатывании таймера проверить флаг и сделать необходимое.
← →
medved_68 © (2006-06-28 10:59) [7]
> Как ты ловишь OnConnect, не подскажешь?
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPServer1.Active:=True;
i:=0;
end;
procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
i:=i+1;
end;
procedure TForm1.IdTCPServer1Disconnect(AThread: TIdPeerThread);
begin
if i>0 then i:=i-1;
end;
Ну а далее все и так ясно :)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c