2012-08-26 133 views
0

我是服务器套接字从swf,(使用writeObject)和服务器重新发送到所有客户端(它没有字节上的任何进程)的数组。但在瑞士法郎方面,我不读这个数组。我能做些什么来解决这个问题。AS3套接字读取套接字作为字节数组

我的代码:

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; 
      } 
     } 
    } 

回答

0

e.target.data不是ByteArray的,但是Socket和您在读取线所有接收的字节:

GELEN_VERI = fl_socket.readUTFBytes(fl_socket.bytesAvailable); 

不要指望在任何行数据:

Dsteps2 = GELEN_BYTES.readObject(); 

...因为您已经读过最后一个可爱的数据。

+0

好的,这个代码是真的吗? [示例代码](http://pastebin.com/nbgRwH2k) –

+0

我想说的是:我应该如何读取数据? –

+0

你必须知道你正在阅读什么,或将字节复制到新的ByteArray并进行操作。 – turbosqel