如何知道网络有没有连通(20分)

F

fonder

Unregistered / Unconfirmed
GUEST, unregistred user!
1. 我是用delphi ADO+SQL2000 开发软件,如果网络未连通时就执行 adoconnection1.open,那么程序就出错了,甚至令电脑死机,
我用过了 TRY..EXCEPT..END ,但还是不行,请问各位高手有何办法.
2. 如何知道客户机有没有与服务器连通?
 
step 1.先PING SERVER;
if receive=0
then application.close
else adoconnect.open;
step 2.test server //在server上写个tcpserver.exe under win2000
if serverisrunning('mssql',XXX) //记不清了,查下吧
then ...
else ...
or 连SERVER的1433端口//端口值查SQL2000的TCP/IP端口设置,可能不是1433
 
step 1.先PING SERVER;
if receive=0
then application.close
else adoconnect.open;

*********
receive 是那里的变量
 
怎么PING啊?
 
indyicmp.ping ;
if indyicmp.receive.......
 
在启动程序时使用SOCKET来测试网络是否连通。
 
还是不清楚
 
还是不清楚?
 
有没有大侠帮手呀!
 
答 如何知道客户机有没有与服务器连通?
未连通:if ADOConnection1.state=stClosed then ...
 
1:
try
ADOConnection1.open ;
except on E: Exception do
MessageDlg('请检查服务器及输入参数是否正确!',mtConfirmation,[mbYes],0);
end;
 
TO ls_hndd,这样不行我试过了(同样死机)。
 
不是史记,你把timeout 改一该试一下
 
还是不行
 
很好用,我试过。

uses WinInet;

function GetOnlineStatus : Boolean;
var ConTypes : Integer;
begin
ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
if (InternetGetConnectedState(@ConTypes, 0) = False)
then Result := False
else Result := True;
end;


 
谁可以解释一下上面是什么意思?上面的代码,我试过了也不行。
 
换个表示法吧!
//====================================================
unit Unit1;
interface
uses
Windows, Messages,WinInet, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var ConTypes : Integer;
begin
ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
if (InternetGetConnectedState(@ConTypes, 0) = False)
then ShowMessage('网络不通')
else ShowMessage('网络已通');
end;
end.
//=====================================================================
 
to intcom:
你好,请问:
InternetGetConnectedState 是什么函数?我现在要测试是否与服务器连通(最好包含
测试 SQL SERVER2000 是否连通),而不是客户机,怎么连服务器的IP地址也不要用。
上面代码我试过了,无论我的网络有没有连通,SQL SERVER2000 有没有开启,它都显示
‘网络已通’。望 intcom 能解释一下。
 
这个程序测试本机是否在网上,如用MODEM,或通过宽带,或通过代理服务器等.
 
顶部