c#檢測端口是否被占用的簡單實(shí)例
當(dāng)我們要?jiǎng)?chuàng)建一個(gè)Tcp/Ip Server connection ,我們需要一個(gè)范圍在1000到65535之間的端口 。
但是本機(jī)一個(gè)端口只能一個(gè)程序監(jiān)聽,所以我們進(jìn)行本地監(jiān)聽的時(shí)候需要檢測端口是否被占用。
命名空間System.Net.NetworkInformation下定義了一個(gè)名為IPGlobalProperties的類,我們使用這個(gè)類可以獲取所有的監(jiān)聽連接,然后判斷端口是否被占用,代碼如下:
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端口啟動(dòng)一個(gè)監(jiān)聽,然后測試是否可以被檢測出來,代碼如下:
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();
}
- c# 防火墻添加/刪除 特定端口的示例
- C#檢測遠(yuǎn)程計(jì)算機(jī)端口是否打開的方法
- C#端口轉(zhuǎn)發(fā)用法詳解
- 基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼
- C#獲取Windows進(jìn)程監(jiān)聽的TCP/UDP端口實(shí)例
- C#開發(fā)之Socket網(wǎng)絡(luò)編程TCP/IP層次模型、端口及報(bào)文等探討
- asp.net(c#)動(dòng)態(tài)修改webservice的地址和端口(動(dòng)態(tài)修改配置文件)
- c# 連接字符串?dāng)?shù)據(jù)庫服務(wù)器端口號 .net狀態(tài)服務(wù)器端口號
- c# AcceptEx與完成端口(IOCP)結(jié)合的示例
相關(guān)文章
C#連接Mysql數(shù)據(jù)庫詳細(xì)教程(內(nèi)附Mysql及Navicat)
這篇文章主要給大家介紹了C#連接Mysql數(shù)據(jù)庫詳細(xì)教程(內(nèi)附Mysql及Navicat),文中通過代碼示例和圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10
C#控件Picturebox實(shí)現(xiàn)鼠標(biāo)拖拽功能
這篇文章主要為大家詳細(xì)介紹了C#控件Picturebox實(shí)現(xiàn)鼠標(biāo)拖拽功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
C#窗體實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C#窗體實(shí)現(xiàn)點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08

