Выделенный сетевой порт в C # - PullRequest
0 голосов
/ 17 мая 2009

Как мне убедиться, что определенный порт на моем компьютере не используется ни для каких других целей, кроме службы, которая мне нужна в C # ??

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

Ответы [ 3 ]

3 голосов
/ 17 мая 2009

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

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

1 голос
/ 17 мая 2009
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, 0);

Это даст вам первый доступный порт на локальной машине.

http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx

0 голосов
/ 17 мая 2009

Открыть прослушивание tcp-сокета на нем? Это мешает кому-либо сделать то же самое.

Отказ в соединении звучит больше как проблема брандмауэра.

...