unit clienttestconnected;
inte***ce
uses
sysutils, classes, sqlexpr,unetcommon;
type
twaitthread = class(tthread)
private
fnetconnect:boolean;
fcheckinterval: integer;
fmsg: string;
protected
procedure showmsg;
procedure execute; override;
procedure serveropen;
procedure serverclose;
function connremotesvr(cn:tsqlconnection;const hostname,username,password:string;
const port:integer):boolean;
public
netcheck1: tnetcheck;
constructor create(const acheckinterval: integer);
destructor destroy; override;
procedure checknetconnect(sender: tobject; var objwbemobject,
objwbemasynccontext: olevariant);
procedure checknetdisconnect(sender: tobject; var objwbemobject,
objwbemasynccontext: olevariant);
end;
implementation
uses clientform;
procedure twaitthread.serverclose;
begin
frmmain.sqlconnection1.close;
end;
procedure twaitthread.serveropen;
begin
if fnetconnect then
fmsg := '正在連線...'
else fmsg :='網路異常';
synchronize(showmsg);
if connremotesvr(frmmain.sqlconnection1,'localhost','cxg','123',211) then
begin
fmsg := '網路正常';
synchronize(showmsg);
end;
end;
procedure twaitthread.showmsg;
begin
frmmain.label1.caption := fmsg;
end;
procedure twaitthread.execute;
begin
tryserveropen;
fnetconnect :=true;
except
fnetconnect :=false;
end;
repeat
sleep(fcheckinterval);
if not fnetconnect then
begin
fcheckinterval := 3000;
serverclose;
serveropen;
end;
until terminated;
end;
procedure twaitthread.checknetconnect(sender: tobject; var objwbemobject,
objwbemasynccontext: olevariant);
begin
fnetconnect := true;
end;
procedure twaitthread.checknetdisconnect(sender: tobject; var objwbemobject,
objwbemasynccontext: olevariant);
begin
fnetconnect :=false;
end;
function twaitthread.connremotesvr(cn: tsqlconnection; const hostname, username,
password: string; const port: integer): boolean;
begin
trycn.close;
cn.drivername := 'datasnap';
cn.loginprompt :=false;
cn.connectionname := 'datasnapconnection';
cn.params.clear;
cn.params.add('drivername=datasnap');
cn.params.add('hostname='+hostname);
cn.params.add('port='+inttostr(port));
cn.params.add('user_name='+username);
cn.params.add('password='+password);
cn.open;
result :=true;
except
result :=false;
end;
end;
constructor twaitthread.create(const acheckinterval: integer);
begin
fcheckinterval := acheckinterval;
netcheck1 :=tnetcheck.create(nil);
netcheck1.onnetwireconnect:=checknetconnect;
netcheck1.onnetwiredisconnect:=checknetdisconnect;
inherited create(false);
end;
destructor twaitthread.destroy;
begin
netcheck1.free;
netcheck1 :=nil;
inherited;
end;
end.
Windows批處理 自動檢查網路連通性
檢測網路連通性我用的是叢遠到近的方法,即 外網 閘道器 內網 本機 指令碼的實現也是根據這個順序用 ping 來檢測,為提高檢測速度,這裡我只 ping了2 次,各位可以根據自己的需要進行修改。使用方法大神們都會的 複製 另存為 bat 檔案後執行。echo off color 2f title 網...
GG 網路連線。
www.google.com 還有 maps.google.com 又不能訪問了。不太相信是 google 自身的技術原因。m 之類的競爭對手也不至於在新的瀏覽器裡採取什麼手段。真不知道怎麼揣測了。不知道是不是有 高能強智 的干擾項在起作用。這種技術在今天的這裡好像已經很成熟的樣子了。以前,還可以用...
virtualbox Ubuntu網路連線思路
1.首先ifconfig a檢視ubuntu的當前網路介面狀態 2.如果是網絡卡設定的問題,輸入以下命令修改網絡卡設定 新增網絡卡,設定動態ip 3.啟動網絡卡 sudo ifup eth0關閉命令是sudo ifdown eth0 4.重啟網路服務 sudo service network res...