![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TIdTCPServer + несколько клиентов. [D7]
Gym © (2004-03-07 16:31:00)Здравствуйте уважаемые мастера.
Подскажите, пожалуйста, как в TIdTCPServer узнать ip и порт, с которого подключился клиент, количество подключённых клиентов. Как отослать каждому клиенту, допустим, текстовую строку.
Спасибо.
Gym (2004-03-08 15:47:00) [41]Я тут кое-что придумал:
procedure TfmServer.TCPServerConnect(AThread: TIdPeerThread);
begin
MThreads[i]:=TIdPeerThread.Create;
MThreads[i]:=AThread;
mmLog.Lines.Add(MThreads[i].Connection.Socket.Binding.PeerIP);
i:=i+1;
end;
procedure TfmServer.Button1Click(Sender: TObject);
var
n : integer;
begin
for n:=0 to i-1 do MThreads[n].Connection.Writeln(IntToStr(n));
end;
Если вместо массивов использовать TList то должно получиться сносно,
но придётся следить за каждым клиентом, если он дисконектился находить
и удалять его из списка и т.д.
Должно же быть что-то похожее в самом компоненте? Если кто знает подскажите.
Gym (2004-03-08 06:02:00) [42]
> S@shka © (07.03.04 22:19) [1]
> athread.connection.binding.peerip
Так я получу только ip клиента.
Но главное я не знаю как перебрать всех клиентов приконекченных к серверу и послать им какие-либо данные. Неужели никто не знает, как это делается? Что никто не писал клиент-серверных приложений, где к серверу подключается больше чем один клиент?
Не сочтите за труд, ответьте пожалуйста.
S@shka (2004-03-07 22:19:00) [43]athread.connection.binding.peerip