2016-12-24 13 views
0

에서 재 시도를 연결의 TIdTCPClient 서버가 온라인 상태 인 경우 모든 것은 확인하지만 서버의 경우 debug 또는,142,248,166의 차이가해제는 인디 내가 그래서 코드는 다음과 같이 내 서버에 연결을 확인하려면이 코드를 firemonkey

enter image description here

이되지 않습니다 : 온라인이 오류를 많이 가지고모드! 둘 다 안드로이드에서 오류가 발생합니다. 이로 인해 두 개의 응용 프로그램 충돌이 발생하고 코드가 처리되지 않습니다 !! 어떻게이 오류를 피할 수 있습니까?

답변

0

주 UI 스레드의 루프에서 CheckInternet()을 반복 호출하고 발생하는 예외를 포착하지 않는 경우에만 볼 수 있습니다. 포착 메시지는 포착되지 않은 예외를 포착 할 때 FMX 내의 기본 예외 처리기에 의해 표시됩니다.

EIdSocketErrorConnect()이 제기 할 수있는 유일한 예외 유형은 아닙니다. 당신이 잡으려고하지 않는 몇 가지 다른 가능한 유형이 있습니다. except 블록에서 필터를 제거해야합니다.

function CheckInternet(ssip:string): boolean; 
begin 
    result:=false; 
    with form1.IdTCPClient1 do 
    try 
    ConnectTimeout:=1000; 
    Port:=80; 
    Host:=ssip; 
    Connect; 
    Disconnect; 
    result:=true; 
    except 
    result:=false; 
    end; 
end;