上一篇我講到了如何取得可用的端口。那麼,與這個相反的一個問題就是,如 何取得正在使用的端口列表呢?
這個問題依然是沒有什麼現成的東西可用的,但對於咱來說,算不了什麼大不 了的問題。至少我想到一個比較土的辦法,嘿嘿
1. 我們知道,要想查看當前所有的端口,可以通過netstat工具,如下
2. 現在的關鍵問題是,如何調用該工具,得到這個結果後分析得到我們要的 結果
我們可以在之前的PortHelper類型中添加一個方法
public string GetPortList()
{
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "netstat";
info.Arguments = "-na";
info.CreateNoWindow = true;
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForExit();
StreamReader reader = p.StandardOutput;
StringBuilder sb = new StringBuilder();
int row = 0;
while (!reader.EndOfStream)
{
string r = reader.ReadLine().Trim();
if (row++ > 3)
{
sb.AppendLine(r);
}
}
return sb.ToString();
}