c#ポートが占有されているかどうかを判断

7035 ワード

ここでは主にネーミングスペースSystemを使用します.Net.NetworkInformationでは、IPGlobalPropertiesというクラスが定義されています.
具体コード
 1     class PortHelper

 2     {

 3 

 4         #region  

 5         /// <summary>

 6         ///  

 7         /// </summary>

 8         /// <param name="port"> </param>

 9         /// <param name="type"> </param>

10         /// <returns></returns>

11         public bool portInUse(int port,PortType type)

12         {

13             bool flag = false;

14             IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();

15             IPEndPoint[] ipendpoints = null;

16             if (type == PortType.TCP)

17             {

18                 ipendpoints = properties.GetActiveTcpListeners();

19             }

20             else

21             {

22                 ipendpoints = properties.GetActiveUdpListeners();

23             }

24             foreach (IPEndPoint ipendpoint in ipendpoints)

25             {

26                 if (ipendpoint.Port == port)

27                 {

28                     flag = true;

29                     break;

30                 }

31             }

32             ipendpoints = null;

33             properties = null;

34             return flag;

35         }

36         #endregion

37 

38     }

39 

40     #region  

41     /// <summary>

42     ///  

43     /// </summary>

44     enum PortType

45     {

46         /// <summary>

47         /// TCP 

48         /// </summary>

49         TCP,

50         /// <summary>

51         /// UDP 

52         /// </summary>

53         UDP

54     }

55     #endregion