1

ここに画像の説明を入力 ここに画像の説明を入力

私は indy の tcp サーバー/クライアントを使用しており、すべて正常に動作します (いくつかのバグを修正しました) が、私を悩ませているバグが 1 つあります。

すべてのスレッドをフリーズしてから tcp クライアントのプロセスを強制終了すると、サーバーがクラッシュし、tcpserver でノンストップでエラーが発生し続けます。

Delphi 6およびその他のソケットエラーでそのエラーを処理し、サーバーがクラッシュするのを防ぐ方法はありますか(私はdelphi 6 / Windows 8 64ビットを使用しています(おそらく必要ありませんが、win 7でテストしたことはありません... )/ indy 9 / Indy TCP サーバーとクライアント)?

4

2 に答える 2

4

サーバーがクラッシュしていません。 これは、クライアント接続が閉じられた/失われたときに発生EIdSocketErrorする完全に正常な例外です。TIdTCPServerこれは正常な動作です。 TIdTCPserverは内部で処理し、例外がサーバーにエスケープされた場合はソケットを閉じます(これを許可する必要があります。自分でキャッチした場合は、終了後に再レイズしてください)。例外が表示される唯一の理由は、アプリが例外を表示する前にデバッガーが例外を報告するためです。EIdExceptionF9キーを押すだけで、デバッガーが通常の処理のためにアプリに渡すか、Indyベースの例外を無視するようにデバッガーを構成します。

于 2013-03-07T23:18:28.017 に答える