![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Socket & SendText [D6, WinXP]
yura1975 © (2002-12-28 22:22:00)Есть сервер, к нему подключено несколько клиентов, вопрос - как послать мессаже только конкретному клиенту?
ServerSocket1.Socket.Connections[0].SendText(Edit1.Text);
так я не могу послать потому что клиенты периодически отключаются!
есть такое свойство как SocketHandleоно у клиента постоянное, но как им воспользоваться - непойму,
помогите если не сложно.
Polevi (2002-12-29 22:28:00) [1]>Мессаже допустим пришел от 3-го, а как мне ему лично послать в ответ нужный мессаже?
в OnRead передается нужный тебе сокет
really_Deflorator (2002-12-29 21:18:00) [2]Тю... и я тоже... только хотел отписать...
yura1975 (2002-12-29 00:43:00) [3]Сам задал вопрос сам и ответ на него нашол(на Рамблере!):
{Перебираем все установленные соединения}
For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
{Проверяем - если идентификатор очередного сокета не совпадает с идентификатором сокета, приславшего сообщение, то...}
if ServerSocket1.Socket.Connections[i].SocketHandle <> Socket.SocketHandle
then ...
yura1975 (2002-12-29 00:34:00) [4]Да моё воображение тоже чтото типа этого и предлагает, но опять но:
- насчет ip это я думаю непоможет, наврятли;
- у меня есть уникальное значение для каждого клиента SocketHandleи оно не меняется на протяжении всего сеанса связи клиента с севером. Его то я ми собираюсь в массив записывать, но как мне его потом использовать для идентификации клиента, можна ли из него выйти натоесть мну нужно будет через нево найти iи подставить в процедуру упомянутую выше!
ServerSocket1.Socket. Connections[i].SendText(Edit1.Text);
really_Deflorator (2002-12-28 23:18:00) [5]Попробуй организовать динамический массив записей, в которых и будут записаны данные о подключенных чуваках (ну, ip там, ещё чего).
Моё ленивое воображение подсказывает пока только это.
yura1975 (2002-12-28 23:02:00) [6]Ну конечно просто, понятно что там тот ноль делает,
но не могу понять другого я, как из допустим 10 клиентов
определить допусим кто 0, 1, 2, 3, 4...
Мессаже допустим пришел от 3-го, а как мне ему лично послать в ответ нужный мессаже?
И если опять же допустим в это время тот клиент, что был на 0, 1
или 2 отсоединяется, то 3-й может стать и 0 даже. Цифры то смещаются.
really_Deflorator (2002-12-28 22:42:00) [7]Чувак!
Всё очень просто! Меняй вон тот галимый нолик на другую цихферку и всё!