ホストから接続がリセットされた場合は Connected関数を実行する度に 例外「Socket Error # 10054 ピアにより接続がリセットされました」が発生します。 このためSocket Error # 10054発生時にアプリ終了手続き(FormCloseQuery内等)で例外処理無しで if IdTCPClient1.Connected then IdTCPClient1.Disconnect; を実行した場合は例外発生でDisconnectが実行されず、アプリケーションが終了できなくなります。 よって例外処理で Disconnect手続きを実行し、以後の例外発生を阻止する必要が有ります。 例1) 例外処理で Disconnectを実行して例外の再発生を防止する
例2) エラーメッセージを出力する場合の例
Socket Error # 1005 を発生させる手順(TCP host を Delphi IDE上 で実行する)1. TCP host: IDE上でHostアプリを実行してTCPホストをオープンする 3. TCP host: メニューバーから「実行」→「プログラムの停止」を行う 2. TCP Client: TCPクライアントをオープンする 3. TCP host: メニューバーから「実行」→「プログラムの終了」を行う 4. TCP Client: Connected 関数を実行すると Socket Error # 1005 例外が発生する |