Flex Builder 3でのアクションスクリプト3の使用ソケットのEnd Of Fileは何を意味しますか?
SOCKET_DATAイベントを処理するときに、一見無作為に見えることがあります。「エラー#2030:ファイルの最後に遭遇しました。 socket.readInt()を呼び出すとき。私はファイルを読んでいないので、このエラーが何を意味するのか混乱していますか?私はソケットで少し不平等です。ありがとう。
Flex Builder 3でのアクションスクリプト3の使用ソケットのEnd Of Fileは何を意味しますか?
SOCKET_DATAイベントを処理するときに、一見無作為に見えることがあります。「エラー#2030:ファイルの最後に遭遇しました。 socket.readInt()を呼び出すとき。私はファイルを読んでいないので、このエラーが何を意味するのか混乱していますか?私はソケットで少し不平等です。ありがとう。
、あなたが取得します:Error #2002: Operation attempted on invalid socket.
エンド・オブ・ファイルのエラーは通常、あなたが利用できるよりも多くのバイトを読めば...これはのためのケースである、任意のbytestreamsで発生しますファイル、ソケットなど...フラッシュの場合は、Socket
またはByteArray
から読み込んだり、場合によってはその他の場合でも発生します。
TCP/IPはパッケージベースですが、ストリームをエミュレートします。 ..あなたはストリームからデータを読み取ることができます。これはすでにTCPパッケージで送信されています...チェックするためにSocket::bytesAvailable
をチェックしてください。現在利用可能なバイト数は...常に心に留めておいてください帽子あなたは、私が取得する必要があります、socketData
イベント...
greetz
back2dos
ファイルの終了エラーは、通常、ソケットのもう一方の側が接続を閉じたことを意味します(IIRC)。
それはファイルエンドオブだ理由は、プログラム内の非常に低いレベルで、ディスクおよびソケット上のファイルが両方の数で表現されていることである - OSがに変換することを - file descriptorオブジェクトはファイルやソケット、パイプなどを表します。
通常、EOFを読み込んだかどうかを確認することで、この種のエラーを回避できます。 EOFを読んだ後、ソケット/ファイルからもう一度読もうとすると、EOFエラーが発生します。
この問題を持つ他の誰かのフォローアップ。私はbytesAvailableが> 0であることを確認しているだけなので、他の人のコードから見ていたが、その後4バイトになるreadIntを実行しているからだと思います。したがって、1〜3バイトのデータしかない場合、readIntは何らかの形で仮想的に失敗します。 – AaronLS