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

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

TServerSocket и несколько подключений [D7, WinXP]


Страницы:   1 2

Балбес ©   (2007-08-07 22:09:00) 

Жили были SocketServer и два SpcketClientа в асинхронном режиме >_<. К ServerSocket.Socket.Connections[0] и Connections[1] подключено два пользователя: первый и второй. Если отключится второй и снова подключится то все будет хорошо, первый останется в Connections[0], второй соотв-но попадет в Connections[1]. Но если отключится первый (второй перемещается в Connections[0]?) и снова подключится, то по логике второй должен быть в Connections[0] а первый (последний подключившийся) в Connections[1]. НО! Connections[0] и Connections[1] указывают оба на последнего подключившегося, т.е. на первого. Такое может быть? Проблема в сокетах или в моей голове? :)


Балбес   (2007-08-08 11:34:00) [21]


> Уникальность клиента вполне обеспечивается комбинацией RemoteAddress:
> RemotePort.

Не всегда. Несколько клиентов могут быть подключены с одного IP (например, когда они из LAN с выходом в интернет) или даже с одного компьютера. Другое дело, давать ли одинаковым IP подключаться.

А дело все было в коде ^_^


Сергей М.   (2007-08-08 08:57:00) [22]

И вообще - идентифицировать кл.соединения по их индексу в упомянутом списке не есть разумное решение.

Уникальность клиента вполне обеспечивается комбинацией RemoteAddress:RemotePort.


Сергей М.   (2007-08-08 08:14:00) [23]


> если отключится первый (второй перемещается в Connections[0]?
> ) и снова подключится, то по логике второй должен быть в
> Connections[0] а первый (последний подключившийся) в Connections[1]


Да, именно так.


> НО! Connections[0] и Connections[1] указывают оба на последнего
> подключившегося, т.е. на первого. Такое может быть?


Нет, не может.


> Проблема в сокетах или в моей голове?


Где угодно, только не в сокетах.


Страницы:   1 2

Наверх

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