[fpc-pascal] Ethernet Relays
James Richters
james at productionautomation.net
Mon Sep 7 01:08:33 CEST 2020
Thanks Michael, I'll give it a try
James
-----Original Message-----
From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org> On Behalf Of Michael Van Canneyt via fpc-pascal
Sent: Sunday, September 6, 2020 11:12 AM
To: James Richters <james at productionautomation.net>; FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org>
Cc: Michael Van Canneyt <michael at freepascal.org>
Subject: Re: [fpc-pascal] Ethernet Relays
On Sun, 6 Sep 2020, James Richters via fpc-pascal wrote:
> I've been using simpleget to control ethernet relays like this:
> S:=TFPHTTPCLIENT.SIMPLEGET('http://10.10.01.01/30000/15');
>
> But if the IP address does not exist on the network I get this error:
>
> An unhandled exception occurred at $0000000100032A4A:
> ESocketError: Connection to 10.10.01.01:80 timed out.
>
> And my program terminates. Is there some way I can capture this error
> with my program so I can just put up a message about the problem and
> keep running?
Yes, catch the ESocketError in a try..except:
Try
S:=TFPHTTPCLIENT.SIMPLEGET('http://10.10.01.01/30000/15');
except
On E: ESocketError do
Writeln('Could not connect to server'); end;
> Is there a way to change the amount of time before the timeout?
Yes, but then you need to create an instance, i.e. the Simple* commands won't do that for you:
Instead, it will look like this:
uses fphttpclient;
Var
C : TFPHTTPClient;
begin
C:=TFPHTTPClient.Create(Nil);
try
try
C.ConnectTimeout:=10; // Or whatever you think is good
C.Get('http://10.10.01.01/30000/15');
except
On E: ESocketError do
Writeln('Could not connect to server');
end;
finally
C.Free;
end;
end;
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal at lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list