0

私は(writeObjectを使用して)swfから配列をサーバーソケットに接続し、サーバーはすべてのクライアントに再送信します(バイトのプロセスではありません)。しかし、swf側では、この配列を読み取っていません。この問題を解決するために何ができますか。

私のコード:

fl_socket.addEventListener(ProgressEvent.SOCKET_DATA, veri_geldi);

function veri_geldi(e:ProgressEvent):void
    {
        if (fl_socket.bytesAvailable > 0)
        {

            GELEN_VERI = fl_socket.readUTFBytes(fl_socket.bytesAvailable);
            veri_tipi = GELEN_VERI.split(';');
            switch (veri_tipi[0])
            {
                case "DURUM_BILGISI" :
                    durum_bilgisi.text = GELEN_VERI;
                    break;
//Other Cases
                default :
                //it's not work after this line...
                GELEN_BYTES = e.target.data; // "GELEN_BYTES" as a ByteArray

                    Dsteps2 = GELEN_BYTES.readObject(); // Dsteps2 as an Array

                    durum_bilgisi.text = Dsteps2[0].toString() + "|" + Dsteps2[1].toString();
                    break;
            }
        }
    }
4

1 に答える 1

0

e.target.dataはByteArrayではなくSocketであり、受信したすべてのバイトを次の行で読み取ります。

GELEN_VERI = fl_socket.readUTFBytes(fl_socket.bytesAvailable);

行にデータがないことを期待しないでください:

Dsteps2 = GELEN_BYTES.readObject();

...あなたはすでに最後の実行可能なデータを読んだので。

于 2012-08-27T07:03:01.627 に答える