2015-04-06 5 views
0

В моем приложении много tcpclients, которое используется для обновления сотен серверов при указании. У меня проблемы с дизайном с незначительной, но важной проблемой.Определите сокет с несколькими асинхронными клиентами tcp

Мои программы выводят исходящее сообщение из очереди и выбирают доступного клиента из массива клиентов, я назову этого клиента1. Он запускает соединение на tcpclient с BeginConnect и выдает метод обратного вызова. Затем программа переходит к другим сообщениям из очереди и tcpclients, которые будут их отправлять.

Когда обратный вызов происходит для client1, моя программа получает AsyncResult, из которого я могу разрешить сокет.

Вот моя проблема. Как узнать, какой сокет или TCPClient у меня есть? Это важно, потому что мне нужно знать, какое сообщение отправить на этот подключенный клиент.

Я просмотрел сокет и не нашел свойство имени.

Как определить сокет, чтобы я знал, что правильный обмен сообщениями имеет?

Спасибо!

+0

Вы проверили, не показывает ли объект что-то вроде Ipaddress или имя ..etc ...? это может дать вам несколько идей, если вы не попробуете поиск в Google http://stackoverflow.com/questions/2717381/how-do-i-get-client-ip-address-using-tcpclient – MethodMan

+0

Подключите ли каждый из ваших клиентов к уникального сервера (IP-адрес/порт) или каждый из ваших клиентов использует уникальную локальную конечную точку (IP-адрес/порт)? – Shar1er80

+0

MethodMan, хорошая находка. Я потратил около часа на поиск нескольких клиентов и получил только пример сервера, хахаха. –

ответ

0

После изучения и исследований я понял, что обратный вызов передаст любой System.Object. Таким образом, ответ так же просто, как и перенос TCPClient в класс, который обладает свойствами, которые могут идентифицировать его цель.

В моем случае достаточно простого класса с Socket, String для сообщения, строки для IP и int для порта было достаточно, чтобы обрабатывать ситуацию, когда она переходила к обратному вызову. Просто помните, что вы должны вернуть IAsyncResult.AsyncState обратно к типу вашего класса-оболочки.

Смежные вопросы