Прослушивание на нескольких портах TCP - PullRequest
1 голос
/ 21 декабря 2010

Я пытаюсь сделать следующее:

// Create IPv4 TCP/IP sockets. 
TcpListener listener = new TcpListener(IPAddress.Any, 11000);
TcpListener listener2 = new TcpListener(IPAddress.Any, 12000);

// Listen for incoming connections.
listener.Start();
listener2.Start();

Второй вызов TCPListener.Start () вызывает исключение socketex, говорящее, что «Только одно использование каждого адреса сокета (протокол / сетевой адрес / порт)обычно разрешается ".

Поскольку я использую другой порт, я думал, что серверное приложение может прослушивать несколько портов?

Есть ли другой способ сделать это?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2010

Ваш код в порядке и работает на моей коробке. Всплывающее окно брандмауэра появилось только после успешного запуска обоих слушателей. Как все указывают, у вас есть приложение, открытое на порту 12000.

Выполните netstat -a -b и посмотрите, какое приложение его использует.

Пример:

  TCP    [::]:12000             [::]:0                 LISTENING
 [services.exe]
2 голосов
/ 21 декабря 2010

Приложение может настроить прослушиватель tcp на любое количество портов.

Как показывает ошибка, что-то еще прослушивает этот конкретный порт.

Я предполагаю, что ваше приложение работает дважды ИЛИ после этого вы не очистили его должным образом. Обратите внимание, что вы должны явно закрывать каждое принятое соединение по отдельности. Стоп не делает это для вас.

Ссылка на MSDN .

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