如何写一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
{
不做操作!
}请问上面的:
//----需要实现:连接主机的检测功能部分-----
如何实现啊?
或者有别的方案???????/
最近要做的工作总是要自动检测与远程主机的连接情况,所以想做一个.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
{
不做操作!
}请问上面的:
//----需要实现:连接主机的检测功能部分-----
如何实现啊?
或者有别的方案???????/
{
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;
}