私たちのテストによると、DataSocketを閉じると、「最近」書き込まれた情報は送信されないようです。
AS3コードでFTPを使用しており、コマンドとデータソケットを開きます。
dataSockeは、書き込むたびに正しくフラッシュされます。
重要なのは、fileStreamからのすべての情報が読み取られ、dataSocketに書き込まれ、フラッシュされたときに、ソケットを閉じたことです。
疑似コードの場合:
-bytesToWrite = filestream.bytesToRead();
-Datasocket.write(bytesToWrite).
-Datasocket.flush():
-if (filestream.noMoreData)
DataSocket.close().
タイマー(約10秒)を使用してソケットを閉じると、正しく送信されます。そうでない場合、サーバー内のファイルは不完全です。
不思議なことに、フラッシュ後、ソケットを閉じると、ソケットが閉じられます。SOはこの情報を送信し、いつ送信するかを決定します。「トランスポート層、今書いたものを送信しないでください。君" :-)。
しかし、実際にはas3ソケットがそのようなことをしているようです。ドキュメントを読みましたが、フラッシュを行うとSOの責任になります。したがって、AS3ソケットを閉じた後でも、SOに送信する情報がある場合は、それを送信する必要があります。
この動作が表示される理由はありますか?
前もって感謝します。