2017-01-10 2 views
-1

Как начать прослушивание порта в TCP-протокол в пределах определенный диапазон?C#: Как найти доступный порт в ряде конкретных портов в TCP?

Для примера:

Проверьте порты от 6001 до 7000, пока вы не найдете доступную одну
и начать слушать его, когда нашли.
, когда кто-то еще пробует , он не может слушать тот же порт.

спасибо.

+1

[Найти следующий TCP-порт в .Net] (http://stackoverflow.com/questions/138043/find-the-next-tcp-port -in-net) –

+1

Вам просто нужно [это] (http://stackoverflow.com/questions/570098/in-c-how-to-check-if-a-tcp-port-is-available) и для петля – Lucifer

ответ

0

Я нашел способ выполнить следующее:

private static int initialPort = 6001; // initial port to search from 

public static void StartServerTCP() 
{ 
    bool serverSet = false; 
    while (!serverSet && initialPort <= 7000) 
    { 
     try 
     { 
      Console.WriteLine(Dns.GetHostName() + ": (Server:TCP) Trying to setup server at port: {0} [TCP]", initialPort); 

      serverSocket.Bind(new IPEndPoint(GetIP(), initialPort)); 
      serverSocket.Listen(0); 
      serverSocket.BeginAccept(AcceptCallback, null); 
      Console.ForegroundColor = ConsoleColor.Yellow; 
      Console.WriteLine(Dns.GetHostName() + ": (Server:TCP) Server setup completed at port {0} [TCP]\n", initialPort); 
      Console.ForegroundColor = ConsoleColor.Gray; 
      serverSet = true; 
     } 
     catch (Exception) 
     { 
      Console.WriteLine("\n" + Dns.GetHostName() + ": (Server:TCP) Port <{0}> is busy, trying a different one\n", initialPort); 
      initialPort++; 
     } 
    } 
} 
Смежные вопросы