IDTCPClient.Connect 提示Read TimeOut 问题,请高人指点!

jwztech_com 2010-11-01 11:05:48
function TForm1.IPConnect(IP:String):Boolean;
var
Ping:TPing;
begin
Result:=False;
{连接主机}
DataModule1.IDTCPClient1.Host := IP ;
{端口}
DataModule1.IDTCPClient1.Port := 8341;
{连接超时设置}
DataModule1.IdTCPClient1.ReadTimeout:=5000;

if DataModule1.IDTCPClient1.Connected then
begin
DataModule1.IDTCPClient1.Disconnect;
end
else
try
Ping:=TPing.Create;
if Ping.PingHost(IP)=True then
begin
DataModule1.IDTCPClient1.Connect; //运行到此处就弹出 Read TimeOut 消息框,不知道怎么回事.
Result:=True;
end
else
begin
Delay(50);
Result:=False;
end;
Ping.Destroy ;
except
on E:Exception DO
begin
Result:=False;
end;
end;
end;

网络设备能PING通的情况下,但不能进行会话连接,此时会弹出提示框"Read TimeOut",请问这个问题如何解决,另外就是如何判断在不能进行会话连接时,断开这个会话连接,函数返回一个布尔值.
...全文
492 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk2000 2010-12-12
  • 打赏
  • 举报
回复
IdTCPClient1.count(500),可以代替ping
为什么用ping?
5000非常大了,除非你开了200线程的bt下载,否则不会引起timerout
xiaocongzhi 2010-12-11
  • 打赏
  • 举报
回复
把ReadTimeout设置大点看看
mdm61 2010-12-11
  • 打赏
  • 举报
回复
我碰到了同样的问题,连接本机可以127.0.0.1没有问题,但是服务端放到服务器上,再去clinet就不行了,不知道是什么原因
bdmh 2010-11-08
  • 打赏
  • 举报
回复
这还是连接不上吗,仔细检查设置吧,或者环境限制吧
fengemail8 2010-11-08
  • 打赏
  • 举报
回复
DataModule1.IdTCPClient1.ReadTimeout:=5000;
把这段注释后,运行看一下
haitao 2010-11-08
  • 打赏
  • 举报
回复
命令行里 telnet IP 8341能不能打开?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧