c# 포트 사용 여부를 체크하는 간단한 인스턴스

1358 단어
Tcp/Ip Server connection을 만들려면 1000에서 65535 사이의 포트가 필요합니다.
그러나 이 컴퓨터는 한 포트에 한 프로그램만 감청할 수 있기 때문에 로컬 감청을 할 때 포트가 점용되었는지 검사해야 한다.
네임스페이스 시스템.Net.NetworkInformation에서 IPGlobalProperties라는 클래스를 정의했습니다. 이 클래스를 사용하면 모든 감청 연결을 가져오고 포트가 점용되었는지 판단할 수 있습니다. 코드는 다음과 같습니다.
 
  
public static bool PortInUse(int port)
{
    bool inUse = false;

    IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();

    foreach (IPEndPoint endPoint in ipEndPoints)
    {
        if (endPoint.Port == port)
        {
            inUse = true;
            break;
        }
    }

    return inUse;
}


HttpListner 클래스를 사용하여 8080 포트에서 수신을 시작한 다음 다음, 코드가 다음과 같이 감지되는지 테스트합니다.
 
  
static void Main(string[] args)
{
    HttpListener httpListner = new HttpListener();
    httpListner.Prefixes.Add("http://*:8080/");
    httpListner.Start();

    Console.WriteLine("Port: 8080 status: " + (PortInUse(8080) ? "in use" : "not in use"));

    Console.ReadKey();

    httpListner.Close();
}

좋은 웹페이지 즐겨찾기