如何判断网络是否断开? ( 积分: 100 )

  • 主题发起人 主题发起人 xxlqust
  • 开始时间 开始时间
X

xxlqust

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥,小弟遇到了要判断是否连接网络的问题,急需要解决,请各位兄弟给我个如何判断网络是否断开的方法。先谢谢您了!
 
各位大哥,小弟遇到了要判断是否连接网络的问题,急需要解决,请各位兄弟给我个如何判断网络是否断开的方法。先谢谢您了!
 
用Connected属性。类似这样就行:
if TcpClient1.Connected then
showmessage('已经连接上。')
else
showmessage('已经断开!');
 
呵呵...
聪明!
 
在Disconnected事件中不是更方便
procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);
begin

end;
 
unit U_IdIcmpPing;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
IdIcmpClient, ExtCtrls;

type
TForm1 = class(TForm)
IdIcmpClient1: TIdIcmpClient;
Panel1: TPanel;
edtIP: TEdit;
btnPing: TButton;
Memo: TMemo;
procedure btnPingClick(Sender: TObject);
procedure IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.btnPingClick(Sender: TObject);
begin
with IdIcmpClient1 do
begin
ReceiveTimeout:=100;
Host:=edtIP.Text;
Ping;
end;
end;

procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
begin
if AReplyStatus.FromIpAddress<>'0.0.0.0' then
Memo.Lines.Add('Ping '+edtip.Text+' Successful!')
else
Memo.Lines.Add('Ping '+edtip.Text+' Failure!')
end;

end.
 
uses WinInet;

InternetCheckConnection(PChar(aUrl), 1, 0);
返回TRUE,FALSE.

最好用线程。如果连不上,函数执行时间会长点。
 
各位大哥,如果不用控件可以吗?
 
uses WinInet;

InternetCheckConnection(PChar(aUrl), 1, 0);
返回TRUE,FALSE.
这个没有用控件。
 

Similar threads

回复
0
查看
848
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部