![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| manz9 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2010 Репутация: нет Всего: нет |
Использую компоненты TServerSocket, ClientSocket. Как получить порядковый номер отключившегося клиента по событию ServerSocket1ClientDisconnect? Спасибо.
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Не нужно делать этого. Чересчур много проблем потом вылезет.
Ориентируйтесь по параметру Socket в этом событии (да и во всех остальных). И напоследок (с которого и нужно было начинать): что Вы планировали сделать с этим индексом? Это сообщение отредактировал(а) kami - 9.12.2010, 18:43 |
|||
|
||||
| casinosoftguru |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.12.2008 Репутация: нет Всего: нет |
в гугле по запросу ServerSocket1ClientDisconnect очень много полезного найти можно..
непонятно что имеется в виду под "порядковый номер" клиента ? IP и хостнейм можно так узнать
при подключении по ним можно выдать номер клиенту а потом его и вычислить.. |
|||
|
||||
| manz9 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2010 Репутация: нет Всего: нет |
Точно, спасибо.
Про это я знал, но мне нужно было другое.
Есть массив клиентов (назовём его a). При подключении клиента находился такой элемент массива a, параметр Active которого равен false, ну и устанавливался потом в true. Так вот при отключении клиента нужно было к массиву обращаться, чтобы Active отк. клиента присвоить false. a[Socket.SocketHandle].Active := false; Сейчас вот так прописано в ServerSocket1ClientDisconnect. Пока не тестировал, но думаю, что это правильно. Это сообщение отредактировал(а) manz9 - 9.12.2010, 20:23 |
||||||
|
|||||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
SocketHandle действительно уникальный идентификатор соединения. Вот только если клиент подключится/отключится/подключится вновь, то SocketHandle будет разным, так же как и комбинация Address|Port. Кроме того, SocketHandle может принимать достаточно большое количество значений (u_int = integer), и какое значение система присвоит новому соединению - этого никто не угадает. Что будет, если у первого соединения SocketHandle будет равен, к примеру 488, а второго - 476 (значения из только что сделанной тестовой программы)? А зачем этот массив нужен? Добавлено через 7 минут и 1 секунду
В дополнение - что мешает занести индекс элемента массива, которому только что присвоили Active:=True в поле Socket.Data? Пояснение:
|
||||
|
|||||
| manz9 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2010 Репутация: нет Всего: нет |
Об этом не знал. Спасибо за прояснение.
Мешало незнание. Спасибо за помощь =). |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |