私はオプションのサーバーアプリケーションに通知メッセージを送信するクライアントアプリケーションを用意しています。クライアントは、サーバーアプリケーションが存在するかどうかによって影響を受けるべきではありません。サーバーアプリケーションに接続して通知メッセージを送信しようとする必要があります。エラーが発生した場合は、すべてのエラーを無視して作業を続行します。Indyの強力な単方向メッセージ
私はTCP通信にIndyを使用していますが、エラーメッセージが表示されないようにする(つまり、サーバーアプリケーションがクライアントに接続しているときに閉じる)ことはできませんでした。
これを本当に堅牢にする方法はありますか?
現在のコードは次のようになります。
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;
こんにちは、ロブ、答えてくれてありがとう。デバッガでアプリケーションを実行していないときにメッセージが表示されます。私はすべての通知に接続したり切断したりすることで修正しました(頻繁に起こることはありません)。今はかなり頑丈なようです。 – jpfollenius