![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Client@Server
Leny © (2002-09-03 13:45:00)Мастера! Как из десятка подсоединившихся к серверу клиентов выбрать одного(с необходимым мне Host"ом)и послать ему сообщение?
Есть идея перебирать всех и искать нужное
for i:=0 to ServerSocket1.ComponentCount-1 do
if ServerSocket1.Socket.Connections[i].LocalHost="Comp" then
ServerSocket1.Socket.Connections[i].SendText("Hi!")
Есть ли более простой способ - без перебора - если этот клиент "Comp" постоянно соединен с сервером!
Может общаться с ним на др.порту?
Digitman (2002-09-03 18:58:00) [1]К тому же, наверно, не LocalHost , а RemoteHost : LocalHost будет для всех гнезд в списке Connections[] одинаков.
Digitman (2002-09-03 18:55:00) [2]
> Как из десятка подсоединившихся к серверу клиентов выбрать
> одного
Ты ж самой себе противоречишь : "выбор" варианта всегда означает "перебор" тем или иным способом возможных вариантов с анализом некоего критерия выбора.
В дан.случае
- "возможные варианты" - это список Connections[]
- критерий выбора - элемент этого списка как некий объект имеет общее для всех аналогичных объектов в списке св-во LocalHost с заданным тобой значением "Comp"
Так или иначе - без "перебора" равноправных объектов в некоем списке или множестве никак не обойтись
В кр.случае, если тебя интересует ТОЛЬКО "Comp", можно в событии OnClientConnect зафиксировать ссылку на вновь созданный объект-гнездо с заданным значением LocalHost="Comp" где-то в отдельнолй переменной и обращаться впоследствии к транспортным методам объекта-гнезда непосредственно по ссылке на него в этой переменной