| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Идентификация клиентов |
| Автор: SanLLIer 8.2.2010, 19:57 |
| Проблема с идентификацией клиентов. Использую socket.handle, но когда клиент подключается к серверу у его "хэндл" = 640 (допустим), а через несколько секунд, когда от того же клиента приходит сообщение, его "хэндл" = уже 154156. Как бороться? Или может подскажете другой способ идентификации клиентов? |
| Автор: kami 8.2.2010, 20:05 |
| Socket.SocketHandle. И зачем что-то из идентификаторов соединения постоянно принимать от противоположной стороны? Чем не устраивает то же самое, но у сервера? Тот же ServerSocket1.Socket.Connections[i].SocketHandle ? |
| Автор: SanLLIer 8.2.2010, 20:48 |
| Про сервер и говорю. На стороне сервера я определяю хэндл клиента при подключении последнего к серверу, но когда спустя пару секунд клиент обращается к серверу снова, то у него уже другой хэендл(!). Как такое может быть? Или я что-то "недогоняю"? |
| Автор: SanLLIer 8.2.2010, 22:52 |
| Допустим. А как сделать чтобы коннект не рвался? |
| Автор: kami 8.2.2010, 22:58 |
Хороший вопрос, но не по адресу. Есть причины, не зависящие от программы - начиная от глюков провайдера заканчивая банальным выдиранием кабеля. Если не брать их в расчет, то решение может быть только одно - исключить (в разумных пределах, конечно) Socket.Close и т.п. Как это сделать - Вам лучше знать, код Ваш, а не мой. |
| Автор: SanLLIer 9.2.2010, 11:43 |
| Что странно закрываю канал я только в конце программы (при закрытии формы т.е. Ну да ладно. Пойду по другому пути... Спс |
| Автор: Mikel 9.2.2010, 12:57 |
| Может в Вашей реализации будет проще работать с указателями на сокеты? |