c#实现ping命令遇到的问题。
本人现在开发的项目需要定时的检查网络的状况。
不知道各位大侠有没有好的办法?
我是用c#实现ICMP协议,模拟ping命令来检查网络的,使用到了这些资源:
http://www.codeproject.com/dotnet/CSharpPing.asp
http://www.eggheadcafe.com/articles/20020209.asp
这些实现的ping程序好像在对指定远程服务器的端口测试中没有用,
也就是说无法判断服务器指定的端口是否打开。
不知道高手对这种情况有没有好的解决办法?谢谢
问题点数:100、回复次数:5Top
1 楼zlz_212(ShREk)回复于 2006-03-17 10:10:15 得分 30
用TCP呢?Top
2 楼serversql(啊初)回复于 2006-03-17 10:15:11 得分 60
使用SOCKETTCPTop
3 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-17 10:41:29 得分 10
public static bool Ping(string remoteHost)
{
bool Flag = false;
Process proc = new Process();
try
{
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @"ping -n 1 " + remoteHost;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (proc.HasExited == false)
{
proc.WaitForExit(500);
}
string pingResult = proc.StandardOutput.ReadToEnd();
if (pingResult.IndexOf("(0% loss)") != -1)
{
Flag = true;
}
proc.StandardOutput.Close() ;
}
catch (Exception ex)
{
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return Flag;
}Top
4 楼xuleicsu()回复于 2006-03-17 11:05:43 得分 0
上面的大哥,我现在是要用检测服务器的一个具体的端口有没有打开,比如8080端口
ping命令可以检测端口吗?好像不能吧Top
5 楼xuleicsu()回复于 2006-03-21 16:48:56 得分 0
我用TCP实现了Top




