0

アクションスクリプト初心者です。IO 用のソケットを使用してフレックス アプリケーションを開発しています。

問題は、flexapp が読み取られるたびにサーバーに何かを書き込む (私の書き込みを読み取る) ことなく、サーバー側からのさまざまな書き込みからアクション スクリプト ソケットを介してバイトを読み取ることができないことです。

たとえば、これはうまくいきます:

server: write()

flex app: read()

server: write()

flex app: read()

しかし: server: write()

server: write()

server: write()

flex app: read()

最初のメッセージのみを読むことにつながります

actionscript ソケットが全二重モードをサポートしていないようです。これは本当ですか?

ps: 最初はセキュリティの問題だと思っていましたが、今では Security.allowDomain("*"); を含めてすべて完了しています。およびポリシー ファイルの取得 (crossdomain.xml ファイルでもテストしていました) - 結果はありません。

psps: サーバー側は最後に '\n' を付けてメッセージを書き込み、書き込み後に毎回 flush() メソッドが呼び出されます。部分的なデータ取得のための私のコードは、送信されたすべてのデータを取得するため、大丈夫だと思いますが、読み取り後に書き込みを行う場合のみです

あなたはなにか考えはありますか?

ありがとう、アンドレイ

4

1 に答える 1

0

全二重モードはそれを行うものではなく、すべての TCP が全二重です。TCP は、一度に受信されるデータの量について保証を提供しません。実際、例の最初の write() によって書き込まれたものを受信しただけではないことを訴える多くのスレッドが見つかります。バイト ストリームを読み取って、自分で把握するだけです。

于 2012-08-09T22:57:42.130 に答える