如何写一C#程序段:自动检测与远程主机(知道IP)已经连接上?
最近要做的工作总是要自动检测与远程主机的连接情况,所以想做一个.dll文件(经过编译后得到的,方便使用),在多个程序中调用。这样再做项目的时候引用很方便。
已经知道远端机器的IP和端口号,就是我在本地的程序中开一个线程,让它在后台自动通过调用那个dll 文件来检测与远程主机的连接情况,如何实现?伪代码:
假如DLL文件中有:
public int ConStat(string ipp)
{
       //ipp是远程主机的IP
   //----需要实现:连接主机的检测功能部分-----
   if(连接成功)
      {
         return 1; 
       }
   else
       { 
        teturn 0;
       }
}下面是在项目的程序中引用上面的DLL
然后调用:
if(ConStat(000.000.000.000)=1)
{
  更新、连接成功提示等操作!
}
else
{
不做操作!
}请问上面的:
//----需要实现:连接主机的检测功能部分-----
如何实现啊?
或者有别的方案???????/

解决方案 »

  1.   

    在网上看了一个这,还有没有别的办法啊???????????添加引用using System.Diagnostics;public static string PingHost(string ip)
      {
       Process pO=new Process();
       pO.StartInfo.FileName="cmd.exe";
       pO.StartInfo.UseShellExecute=false;
       pO.StartInfo.RedirectStandardInput=true;
       pO.StartInfo.RedirectStandardOutput=true;
       pO.StartInfo.CreateNoWindow=true;
       pO.Start();
       string host="ping "+ip;
       pO.StandardInput.WriteLine(host);
       pO.StandardInput.WriteLine("exit");string pingjg="未测试";
       string endjg=pO.StandardOutput.ReadToEnd();
       if(endjg.IndexOf("(0% loss)")!=-1)
        pingjg="连接";
       else if(endjg.IndexOf("Destination host unreachable.")!=-1)
        pingjg="无法到达主机";
       else if(endjg.IndexOf("Request timed out.")!=-1)
        pingjg="超时";
       else if(endjg.IndexOf("Unknown host")!=-1)
        pingjg="无法解析";
       return pingjg;
      }