C # TcpClient Connect первым подключиться - PullRequest
0 голосов
/ 27 июня 2011

У нас есть два или более экземпляров («Узлы») программы, соединяющейся друг с другом через TCP. Мы реализовали это следующим образом:

// 1. Connect
TcpClient connection;

while(true){
    try
    {
        connection = new TcpClient("localhost", ((Port)Port).Value);
    }
    catch(SocketException/* Exception*/)
    {
        continue;
    }

    break;
}

// use the connection

Это происходит параллельно. Узел, который подключается первым, считается родителем узла, к которому он подключается. Мы хотим использовать это свойство для создания связующего дерева. Как мы узнаем, к какому узлу подключился первым, видя, что единственный способ подключиться - это вызвать конструктор TcpClient? Где найти дополнительную информацию о соединении?

Обратите внимание, что в целях тестирования мы используем несколько портов на одной машине. Он должен работать между разными машинами через Интернет.

1 Ответ

1 голос
/ 27 июня 2011

Нет способа определить это по клиентскому коду.

Только сервер может определить это. И только сервер может построить указанное вами дерево.

Если вы написали или имеете доступ для изменения кода сервера, вы должны опубликовать его, чтобы получить дополнительную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...