Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Номер коннекта в сокетах


Страницы:   1 2 3

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 и ему передаю... Так?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо