|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.01.2011, 14:50 | #1 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
ServerSocket -> ClientDisconnect
Всем Привет!
Столкнулся с такой проблемой: при подключении к серверу клиенты отсылают свой NICK(для чата) и сервер формирует список пользователей, когда клиент отключается нада обновить список клиентов и разослать клиентам новый, как это реализовать? Отсюда два вопроса: 1. Правильно ли будет такая реализация: a. Сохраняем список в сторону(копия) b. Очищаем список c. Сервер повторно рассылает запрос на NICK по всем активным соединениям d. Ожидание от клиентов ответа e. Формирования нового списка f. Рассылка нового списка Но тут встает проблема(если я правильно понимаю) как отловить что все активные соединения (клиенты) УЖЕ ОТОСЛАЛИ свои ответы на запрос сервера? 2. Если алгоритм неправильный подскажите реализацию Помогите...
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
21.01.2011, 15:20 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Может просто сказать, что клиент такой-то отключился? Если у вас в чате больше тысячи пользвователей, вы весь канал займете только рассылками списков )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
21.01.2011, 15:39 | #3 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
> c. Сервер повторно рассылает запрос на NICK по всем активным соединениям
Нашиша ?) Где это видано чтобы клиент мог менять ник без предварительного уведомления сервера об этом ? |
21.01.2011, 15:46 | #4 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
2. Рассылать все равно придется, не списки так команду - одно и тоже, только короче сообщение
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
Последний раз редактировалось spirit-ua; 21.01.2011 в 15:57. |
|
21.01.2011, 15:48 | #5 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
а где смена ника, не понял?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
21.01.2011, 16:04 | #6 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
А у вас вобще клиенты как идентифицируются? Как минимум должен быть список из 3-х элементов:
ClientID [uin32] : ClinetName [ utf8 ] : CurrentAddress [ sockaddr_in ] При отключении клиента в списке производится поиск его ID (по соответсвию адресу подключения) и этот ID рассылается остальным, с пометкой "удалить такой-то ID из своих локальных списков". Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
21.01.2011, 16:07 | #7 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
|
21.01.2011, 16:15 | #8 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
2. Что такое ID? это ID подключения сокета на сервере или ника?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
Последний раз редактировалось spirit-ua; 21.01.2011 в 16:18. |
|
21.01.2011, 16:17 | #9 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
А как определить кто отвалился? Адрес не канает - см. пост #8
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
21.01.2011, 16:19 | #10 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
1. Это не идентификация, а авторизация.
Вот для того, чтобы юзеры могли заходить с любого адреса и желательно знать, какой адрес связан с каким клиентом на данный момент. 2. Это уникальный номер юзера в системе. Первичный ключ в терминах БД. Всегда легче работать с целыми числами, чем со строками.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ServerSocket | MyIE | Работа с сетью в Delphi | 9 | 24.06.2010 00:11 |
Есть ли у IdTCPServer такое свойство как у ServerSocket: ServerSocket.Socket.ActiveConnectio ns? | TwiX | Работа с сетью в Delphi | 3 | 07.03.2010 14:28 |
ServerSocket | HTL | Работа с сетью в Delphi | 2 | 02.01.2010 22:40 |
ClientSocket и ServerSocket | Blood o men | Работа с сетью в Delphi | 2 | 25.11.2009 11:36 |
Вопрос по ServerSocket. | maks448 | Работа с сетью в Delphi | 3 | 29.04.2009 08:56 |