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