|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Идентификация пользователей при работе с Сокетами (Delphi)
Имеется клиент-серверное приложение (на сокетах). Сервер одновременно работает с несколькими пользователями, отсюда встает вопрос идентификации.
Например, мы имеем событие ServerSocket1ClientRead, получили от клиента какой-то текст, далее нужно определить, кому же отсылать ответ. Для идентификации имеется Socket.Data, но это указатель, соответственно свои проблемы (нельзя просто присвоить значение, например, счетчика), в каких переменных хранить значения, на которые будут указывать эти указатели =) (Причем это дело еще должно быть динамическое, потому как клиентов может быть много). На данный момент проблема решена так - при ServerSocket1Accept заношу запись в лог (БД), далее Socket.Data:=@Fields[0].AsInteger(Это счетчик, ключевое поле); Ну, а потом при получении данных проверяем поле Data, и делаем поиск: for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do if ServerSocket1.Socket.Connections[i].Data = Socket.Data then begin {Как нашли - чего-то отсылаем} end; Уж больно это дело громоздко и неудобно. Нет ли способа попроще? Заранее спасибо. |