I have a client application that should send notifications to an optional server application. The client should not be affected if the server application exists or not. He should try to connect to the server application and send a notification message, and in case of errors, he should just silently ignore all errors and continue working.
I use Indy for TCP communication, but all attempts to avoid error messages (for example, when the server application is closed when connected to the client) failed.
Is there any way to make this reliable?
The current code is as follows:
if (not Client.Connected) then
begin
Client.Host := ServerName;
Client.Port := ServerPort;
Client.ConnectTimeout := ConnectTimeout;
try
Client.Connect;
except
Exit;
end;
end
try
Client.IOHandler.WriteLn ('NOTIFYCHANGE "' + Param + '"');
Client.IOHandler.WriteBufferFlush;
except
try
Client.Disconnect;
except
{ ignore errors while disconnecting }
end;
try
Client.Connect;
except
{ ignore errors while connecting }
end;
end;
source
share