![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
vlsaf |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Всем привет.
На сервере вертится приемная часть, которая обрабатывает запросы, пришедшие по протоколу TCP IP. Используется обычный TcpListner. На каждое соединение запускается отдельный поток, который работает со своим клиентом. В потоке есть публичный объект public TcpClient tcpClient; Вопрос. Мне нужно однозначно идентифицировать клиента. Как это сделать? Можно ли использовать какой-нибудь идентификатор потока? Ведь каждого клиента обрабатывает свой поток. Или можно ли как-то взять IP клинта и номер порта по которому он соединился + м.б. еще что-то? Говорят, что нужно взять еще интерфейс и порт. Не знаю. Надоумьте, как? Я брал вот такое значение в качестве идентификатора клиента tcpClient.Client.Handle Но как показала практика, бывают случаи, когда разные клиенты получают один и тот же Handle! Я не знаю, как это происходит, но очень редко происходит. М.б. когда хендл освобоздает один клиент, то тут же номер этого хендла присваивается другому? Не знаю. Наверно нужно иметь физический адрес сетевой платы клиента. Тогда ошибок не будет. Например такой "00-A0-D5-FF-FF-A5" Но как его поиметь? |
|||
|
||||
vlsaf |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
Народ.
Решение было элементарным ![]() И почему я сразу до него не додумался! Когда стартует поток, обрабатывающий IP соединение с клиентом, я инициализирую GUID для этого потока. И все! |
|||
|
||||
Random13 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
![]() Это сообщение отредактировал(а) Random13 - 17.2.2010, 19:47 |
|||
|
||||
nmn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
IP+порт клиента будут уникальными для каждого клиента
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |