2009-03-20 4 views

答えて

2

ベストは、あなたが開いている一つの選択肢を見つけるまで試みた...

http://forums.devshed.com/net-development-87/c-how-to-determine-if-a-port-is-in-use-371148.html

public static bool TryPortNumber(int port) 
    { 
     try 
     { 

      using (var client = new System.Net.Sockets.TcpClient(new System.Net.IPEndPoint(System.Net.IPAddress.Any, port))) 
      { 
       return true; 
      } 
     } 
     catch (System.Net.Sockets.SocketException error) 
     { 
      if (error.SocketErrorCode == System.Net.Sockets.SocketError.AddressAlreadyInUse /* check this is the one you get */) 
       return false; 
      /* unexpected error that we DON'T have handling for here */ 
      throw error; 
     } 
    } 
1

サービスをホストするポートをユーザーに選択させてみませんか?たとえば、アプリケーションの構成ファイルにServiceHostに渡す値を追加します。ポート番号をランダムに生成し、開いているかどうかをテストして、別のアプリケーションがすでにそれを使用している場合は、プロセスを繰り返すこともできます。私は見つけることができる

+1

の理由の任意の数。彼は、事前に知られていない、したがって個別に構成することができない、動的に生成された1つ以上のサービスを開始している可能性があります。 –

関連する問題