SSLを使用してTCP/IPコンポーネントを使用してファイルクライアントをサーバーに送信するための1つのアプリケーションを開発しました。
サーバー側で大きなファイルを送信するときに接続がタイムアウトしたというエラーが発生しました
サーバーサイド(SSL)
idTCPServer1.IOHandler := IdServerIOHandlerSSLOpenSSL1;
OnExecute
Acontext.Connection.IOHandler.LargeStream := True;
Acontext.Connection.IOHandler.ReadStream(filestream,Filesize); // Error is occurred here.
End;
クライアント側(SSL)
idTCPClient1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
idTCPClient1.IOHandler.LargeStream := True;
idTCPClient1.IOHandler.WriteStream(fms,-1,True);
クライアントとサーバー間で接続が確立されます。しばらくしてからファイルを送信すると、接続がタイムアウトしました。サーバーとクライアントアプリケーションでエラーが表示され、応答しません。
ここで別のシナリオは、IdIOHandlerStack1(クライアント側)を使用してクライアントとサーバーを通常どおりに接続し、サーバー側がハンドラーを割り当てない場合です。ファイルは問題なく正常に転送されました。
Delphi2010とIndy10.5.5を使用していますが、DLLのバージョンは0.9.8.18です。
誰もが私に案内します