2017-01-10 4 views
-1

のTCPプロトコルでポートをリッスンを開始する方法は、の特定の範囲にありますか?例えばC#:TCPの特定のポートの範囲で使用可能なポートを見つけるにはどうすればよいですか?

あなたが利用できる1
を見つけ、見つけたとき、それを聴き始めるまで、6001から7000までのポートを確認してください。
誰かが と同じものを試みると、彼は同じポートを聞くことができません。

ありがとうございます。

+1

を[.NETで次のTCPポートを探す](http://stackoverflow.com/questions/138043/find-the-next-tcp-port -in-net) –

+1

[this](http://stackoverflow.com/questions/570098/in-c-how-to-check-if-a-tcp-port-is-available)とfor aが必要ですループ – 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++; 
     } 
    } 
} 
関連する問題