求可靠的方法,谢谢各位.网上查到的方法,大部分,只要局域网是通的,就判断通.PING的方法会受服务器影响,所以也不放心.

解决方案 »

  1.   

    uses WinInet;//单元 
     if InternetGetConnectedState(nil, 0) = false then
      begin
        showmessage('网络异常,由于网络异常,程序掉线!');
      end;
      

  2.   

    case5166
    你没有给出测试那个“网站”呀
    比方说   www.163.com
      

  3.   

    case5166
    你没有给出测试那个“网站”呀
    比方说   www.163.com
      

  4.   

    没看到标题后面,那就PING吧,或者用打开网址的方式,打开成功则通,失败则不通
      

  5.   

    用ping好,象163,百度这些都可以。或者ping你当地的dns服务器,这个是很难得变化的。
    打开网址的方法有点慢,再小的页面,也比ping的数据大
      

  6.   

    谢谢各位,我是ping www.baidu.com
    但是在我机器上有时候ping不通,我主要是担心服务器端把ping给关了.function ISinternetok:Boolean;
    var
    IdIcmpClient: TIdIcmpClient;
    begin
    result:=False;
    IdIcmpClient := TIdIcmpClient.Create(Self);
    IdIcmpClient.ReceiveTimeout :=2000;
    IdIcmpClient.Host :='www.baidu.com';
    try
       IdIcmpClient.Ping;
       if IdIcmpClient.ReplyStatus.ReplyStatusType = rsecho then
       result:=True;
    except
    end;
    end;
      

  7.   

    是否可以用idhttp get或post 163里面的某个可反馈的链接,查看是否有反馈的数据流。
      

  8.   

    InternetCheckConnection挺好用的呀。