Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.10.2009, 00:55
xarfan xarfan вне форума
Прохожий
 
Регистрация: 05.10.2009
Сообщения: 3
Репутация: 10
Вопрос Идентификация пользователей при работе с Сокетами (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;

Уж больно это дело громоздко и неудобно. Нет ли способа попроще? Заранее спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter