如何用TIdTCPClient知道一台机器指定的端口是否可以联接. ( 积分: 100 )

  • 主题发起人 主题发起人 WangZhaoHui
  • 开始时间 开始时间
W

WangZhaoHui

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要向192.168.8.3到192.168.8.254之间的机器发送文件,但我不知道哪个机器的端口是否打开了.如何判断是否打开呢.要是打开我就向它发送一个文件.哪们大侠能给个例子.关健是如何知道机器是否连在网上.
 
我需要向192.168.8.3到192.168.8.254之间的机器发送文件,但我不知道哪个机器的端口是否打开了.如何判断是否打开呢.要是打开我就向它发送一个文件.哪们大侠能给个例子.关健是如何知道机器是否连在网上.
 
try
idTcpClient.host:='**.**.**.**'; //主机IP
idTcpClient.port:=****; //指定端口
idTcpClient.Connect(300);
showmessage('OK');
except
showmessage('fail');
end;
 
有没有根据IP地址,能直接判断使用这个IP的机器是不是已经联结到网上的函数啊.
 
检查机器是否连网
function CheckNetWork():Boolean;
begin
if InternetGetConnectedState(nil, 0) then
result:=true
else
result:=false;
end;
检查连接的服务器
function CheckServer():Boolean;
begin
if InternetCheckConnection(PChar('http://127.0.0.1:81'), 1, 0) then
result:=true
else
result:=false;
end;
 
mmjj,我是判断对方的机器是否连在局域网上.我是想知道有没有个函数和ping差不多(不是ping).能准确判断对方的机器打开了.
 
我帮你顶……
 
如果你用的机器能够连接到你想要访问的机器那不就是在联网了吗?
江南大米那个不就可以了
 
对.是可以的.那个我也想到了.我的本意是问问有没有类似"发现机器打开并且联结在局域网"上的函数啊.
 
Function checkremotehost(RemoteHost:String;Port:integer):Boolean;
begin
try
idTcpClient.host:=RemoteHost; //主机IP
idTcpClient.port:=Port; //指定端口
idTcpClient.Connect(300);
Result:=true;
except
Result:=false;
end;
end;


哇哈哈哈哈
 
呵呵,没有现成的函数,但可以自已写函数。
 
谁还有更好的函数啊
 
多人接受答案了。
 
后退
顶部