求教如何监测网络端口被占用???

syinter 2002-12-03 09:05:34
如题,最好用C#实现...
...全文
119 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dy_2000_abc 2002-12-05
  • 打赏
  • 举报
回复
Process p=new Process();
p.StartInfo=new ProcessStartInfo("netstat","-a");
p.StartInfo.UseShellExecute=false;
p.StartInfo.RedirectStandardOutput=true;
p.Start();
string result=p.StandardOutput.ReadToEnd();
if (result.IndexOf(Environment.MachineName.ToLower()+":4000")>=0)
MessageBox.Show("4000端口被占用");
maquansheng 2002-12-04
  • 打赏
  • 举报
回复
建立一个TCP连接,如果连接成功就说明该端口被占用。
连接后,也可以发送一个空的数据,查看返回的数据。
syinter 2002-12-03
  • 打赏
  • 举报
回复
的确如上面所说~~
不过它那里只记录了系统端口使用情况... 如果一些驻留内存的通讯软件使用的端口还是没办法检测啊,比如QQ使用4000,那里面就没有记载
疯癫行者 2002-12-03
  • 打赏
  • 举报
回复
%windir%\system32\drivers\etc\services文件记载着本机的端口使用情况。写一段程序,读取该文件,看看端口是否被占用即可。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧