2010-08-27 4 views
0

Привет, я считаю, что мой флеш-клиент теряет некоторые пакеты, которые посылает сервер, потому что некоторые пакеты объединяются, поэтому я считаю, что он их сбрасывает.Как разбить пакеты во флеше, XMLSocket

Вот мой packetHandler вспышка

private var xmlsock:XMLSocket; 
    this.xmlsock = new XMLSocket(); 
    xmlsock.connect("127.0.0.1", 1234); 
    this.xmlsock.addEventListener(DataEvent.DATA, this.packetHandler); 


    public function packetHandler(event:DataEvent):void { 
    var packet:String = event.data; 
    var args:Array = packet.split(":"); 
    if(args.length <= 0) return; 

    switch(args[0]) { 
    case 'w': //waiting 
    ExternalInterface.call("waiting"); 
    break; 
    case 'u': //user count 
    if(args.length >= 2) 
     ExternalInterface.call("userCount", args[1]); 
    break; 
           //... etc handlers ... 
    } 
} 

возможный пакет я понюхал посланный сервером было.

u: 105.w. ака (75 3A 31 30 35 00 77 00)

поэтому пакет ожидания никогда не пришел.

Как бы я идти о исправление этой ошибки .. Я использую XMLSocket

+0

Вы используете пользовательский сервер? – Eugene

+0

Не совсем, как еще вы можете использовать XMLSocket? вы создаете свой собственный сервер. Но иногда, когда пакеты сбрасываются, они объединяются в один пакет, поэтому требуется разбить их на нулевой байт – SSpoke

ответ

1

K решена, если кто-то нуждается в помощи с этим получается, что вы можете просто сделать это

Var пакеты: Array = data.split ("\ x00");

0

Использовать flash.net.Socket вместо этого.

Смежные вопросы