![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Номер коннекта в сокетах
Sergl © (2007-11-06 13:06:00)При присоединении клиента к серверу происходит событие clientconnect, при этом событии нужно отправить клиенту сообщение sendtext.
Вопрос: как узнать номер соединения данного клиента?
т.е. serversocket1.socket.connection[???].sendtext('text');
Sergl (2007-11-06 14:51:00) [21]Хранится инфа о времени начала тестирования и о времени завершения. Если времени завершения нету и начало было "давно", то мы эту запись трем.
Сергей М. (2007-11-06 14:47:00) [22]
> можно совершать чистку в бд "всех старых, неокочивших тест
> клиентов".
>
А по какому критерию будет осуществляться эта "чистка" ?
Как отличить клиента, который отлучился ненадолго, от клиента, который больше никогда не вернется ?
Sergl (2007-11-06 14:43:00) [23]
> совершать чистку в бд
Либо автоматически регулярную либо в ручную...
Sergl (2007-11-06 14:41:00) [24]Если разговор о бесполезной инфе в БД, то можно совершать чистку в бд "всех старых, неокочивших тест клиентов".
Сергей М. (2007-11-06 14:36:00) [25]
> Согласно иду и переданной информации от клиента
Твой сервер, надо понимать, будет хранить инф-цию обо всех прерванных по его вине сессиях ?
А если клиент устал ждать пока сервер "поднимется" и ушел насовсем ?
А если таких клиентов куча ?
Sergl (2007-11-06 14:32:00) [26]Согласно иду и переданной информации от клиента(типа это начал, это закончил и т.п.; все в БД) до разрыва сессии.
Сергей М. (2007-11-06 14:29:00) [27]Интересно, как твой сервер собирается восстанавливать данные прерванных клиентских сессий после своего неожиданного падения ?
Sergl (2007-11-06 14:26:00) [28]Сетевой тест)
Ну если клиенту передавать хеш id`а тогда вероятность подмена сессии будет => к нулю...
Сергей М. (2007-11-06 14:21:00) [29]Ты чего сотворяешь-то ? Чат что ли ?)
Sergl (2007-11-06 14:12:00) [30]Если трафик изменить при входе на клиент и передать id какой-то свой тогда при отключении и повторном соединении клиент попросит "не тот" id и сервер ему даст сессию.:) Выход вижу в хеш`е id`а?
Сергей М. (2007-11-06 14:11:00) [31]
> Sergl
Обрати внимание, что современный аськин протокол подразумевает хранение UIN'ов твоего контактного листа именно на стороне сервера. Всякий раз когда ты коннектишься к аськиному серверу, твой клиент запрашивает этот контакт-лист у сервера.
Sergl (2007-11-06 14:10:00) [32]Пишу сетевой тест. Может сервер вырубится и чтобы при востановлении работы сервера клиенты могли продолжить работу...
Сергей М. (2007-11-06 14:08:00) [33]
> как это должно выглядеть с точки зрения безопасности?
>
Сначала поясни, для чего тебе "сессии" и почему бы всякий раз при коннекте не спросить у сервера актуальный ID интересующего клиента
Sergl (2007-11-06 14:05:00) [34]Логика у меня такая: если клиент при соединении передает дай id то я его даю, если говорит у меня свой есть то согласно его id`у я и продлеваю ему сессию.
Sergl (2007-11-06 14:01:00) [35]
> проблемы безопасности тебя не волнуют.
Может и волнуют) А как это должно выглядеть с точки зрения безопасности?
Sergl (2007-11-06 14:00:00) [36]
> на клиенте хранить этот ID
Естественно передав его ссервера(например sendtext`ом)
Сергей М. (2007-11-06 13:58:00) [37]
> то свойство DATA хранится на на стороне сервера для каждого
> соединения?
Да.
> при отключении клиента и его повторного соединения мне нужно
> в какой-то переменной на клиенте хранить этот ID что бы
> его передать при повторном соединении(например sendtext`ом)
> для, как-бы, продления сессии клиентом?
Да, можно и так, если проблемы безопасности тебя не волнуют.
Sergl (2007-11-06 13:52:00) [38]Ok.
Это свойство DATA хранится на на стороне сервера для каждого соединения? Т.е. при отключении клиента и его повторного соединения мне нужно в какой-то переменной на клиенте хранить этот ID что бы его передать при повторном соединении(например sendtext`ом) для, как-бы, продления сессии клиентом?
Сергей М. (2007-11-06 13:49:00) [39]
> Тип integer
см. [8]
> перебираю все коннекты, нахожу нужный Socket.Data и ему
> передаю... Так?
Если список не сортирован - да, без тривиального перебора не обойтись.
Sergl (2007-11-06 13:46:00) [40]Тип integer.
Затем когда мне нужно что-то отослать клиенту я и перебираю все коннекты, нахожу нужный Socket.Data и ему передаю... Так?