【发布时间】:2014-09-25 14:17:30
【问题描述】:
我想在 Android 平台中使用 indy 组件 TidIcmpClient 对服务器执行 ping 操作,但调试器会以“Socket Error #1”停止代码。代码在一个单独的线程中,所以我在这里发布线程代码:
procedure TEco.Execute;
var
contadoreco: Cardinal;
buffer: string;
begin
buffer:='12345678901234567890123456789012';
eco:=TIdIcmpClient.Create(nil);
for contadoreco:=1 to 4 do
begin
with eco do
begin
ReceiveTimeout:=2000;
Host:=servidor;
PacketSize:=32;
Ping(buffer,contadoreco);
ipservidor:=ReplyStatus.FromIpAddress;
end;
Synchronize(procedure
begin
Form1.StringGrid1.Cells[0,contadoreco]:=ipservidor;
Form1.StringGrid1.Cells[1,contadoreco]:=IntToStr(tiempoeco);
end);
end;
eco.Free;
end;
这里声明了 TEco 对象:
TEco = class(TThread)
private
servidor: string;
eco: TIdIcmpClient;
terminado: Boolean;
tiempoeco: Cardinal;
ipservidor: string;
protected
procedure Execute; override;
end;
如何在 Android 中使用 TidIcmpClient ping 服务器?难道我做错了什么?超级用户权限之类的?在此先感谢您对我的帮助,并为英语不好感到抱歉。我希望你能理解我的问题;) :)
【问题讨论】:
标签: android delphi ping indy delphi-xe6