|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Узнать номер Connections клиента который отправил сообщение на ServerSocket
Как можна узнать номер по порядку Connections клиента с которого пришло сообщение на процедуру ClientRead (не заставляя клиенту подавать сообщение идентификации), если к одному порту ServerSocket подключено несколько клиентов, что бы тип Socket: TCustomWinSocket дал это знать (так как при отправке сообщения ServerSocket-ом есть такая процедура ServerSocket1.Socket.Connections[i].SendText(...)), типа :
PHP код:
Последний раз редактировалось LiderServis, 20.01.2011 в 20:04. |
#2
|
||||
|
||||
что первое в голову пришло
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin if ServerSocket1.Socket.Connections[i]=Socket then showmessage(inttostr(i)); end; |
#3
|
||||
|
||||
а зачем вообще этот номер потребовался? к тому же он меняется для клиента во время жизни сервера - клиенты имеют свойство отключаться. а так в событии OnClientRead сокет-клиент и так передается Socket: TCustomWinSocket. если для каждого клиента нужно сопоставлять какие-то свои данные, то у TCustomWinSocket есть свойтсво Data: Pointer для хранения пользовательских данных, которые можно инициализировать в событии OnClientConnect.
Пишу программы за еду. __________________ |
#4
|
|||
|
|||
Цитата:
спасибо ))) |
#5
|
|||
|
|||
А Socket.SocketHandle пойдет как идентификатор клиента ?
|
#6
|
||||
|
||||
Я бы как идентификатор использовал IP клиента (Socket.RecvAddr не помню точно как пишется).
Помогаю за Спасибо |