首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TIdIcmpClient控件编纂ping的操作的代码

2013-01-07 
TIdIcmpClient控件编写ping的操作的代码我想用TIdIcmpClient控件编写ping的操作,可以改变封包的大小和次数

TIdIcmpClient控件编写ping的操作的代码
我想用TIdIcmpClient控件编写ping的操作,可以改变封包的大小和次数,那位大虾帮忙贴出代码,非常感谢!
[解决办法]

void __fastcall TForm1::IdIcmpClient1Reply(TComponent *ASender,
      const TReplyStatus &AReplyStatus)
{
Sum = AReplyStatus.ReplyStatusType;
}
//
//以下是实现ping的部分,自己改改,加到你需要的地方
  IdIcmpClient1->Host =  WideString(ADOQuery1->FieldByName("FtpServiceHost")->AsString);
  try {

                IdIcmpClient1->Ping();
                Application->ProcessMessages();

      }
    catch(...)
    {
    return false;
    }
   if(Sum==0)//这里是检查的状态,0是正常,你也可以检查其他的。
   {


[解决办法]
IdIcmpClient1->TTL = 256;
这个设置包大小,ping的次数,你用循环调用
IdIcmpClient1->Ping();
                Application->ProcessMessages();
这个就可以了,Sum = Sum+(int)AReplyStatus.BytesReceived  ;来判断收到多少个包,IdIcmpClient1->ReceiveTimeout 设置超时间

热点排行