Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обычный TCP-IP. 
:(
    Опции темы
vlsaf
Дата 15.2.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007

Репутация: нет
Всего: 1



Всем привет.

На сервере вертится приемная часть, которая обрабатывает запросы, пришедшие по протоколу TCP IP.
Используется обычный TcpListner.

На каждое соединение запускается отдельный поток, который работает со своим клиентом.
В потоке есть публичный объект
public TcpClient tcpClient;

Вопрос. 

Мне нужно однозначно идентифицировать клиента. 
Как это сделать?
Можно ли использовать какой-нибудь идентификатор потока? Ведь каждого клиента обрабатывает свой поток.

Или можно ли как-то взять IP клинта и номер порта по которому он соединился + м.б. еще что-то?
Говорят, что нужно взять еще интерфейс и порт. Не знаю. Надоумьте, как?

Я брал вот такое значение в качестве идентификатора клиента tcpClient.Client.Handle 
Но как показала практика, бывают случаи, когда разные клиенты получают один и тот же Handle!
Я не знаю, как это происходит, но очень редко происходит. М.б. когда хендл освобоздает один клиент, 
то тут же номер этого хендла присваивается другому? Не знаю.

Наверно нужно иметь физический адрес сетевой платы клиента. Тогда ошибок не будет.
Например такой "00-A0-D5-FF-FF-A5"

Но как его поиметь?



PM   Вверх
vlsaf
Дата 16.2.2010, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007

Репутация: нет
Всего: 1



Народ. 

Решение было элементарным smile
И почему я сразу до него не додумался!

Когда стартует поток, обрабатывающий IP соединение с клиентом, я инициализирую GUID для этого потока. И все! 
PM   Вверх
Random13
Дата 17.2.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 21.11.2007

Репутация: нет
Всего: нет



smile 

Это сообщение отредактировал(а) Random13 - 17.2.2010, 19:47
PM MAIL   Вверх
nmn
Дата 19.2.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: нет
Всего: 1



IP+порт клиента будут уникальными для каждого клиента
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1099 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.