0

こんにちは私はフラッシュクライアントがサーバーが送信するいくつかのパケットを失っていると思います。いくつかのパケットが一緒に結合されるため、それらをドロップすると思います。

これが私の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を使用しています

4

2 に答える 2

1

誰かがこれについて助けを必要としている場合、Kは解決しました。あなたはこれを行うことができます

var packet:Array = data.split("\x00");

于 2010-08-29T20:18:21.780 に答える
0

flash.net.Socket代わりにaを使用してください。

于 2010-08-27T14:20:15.667 に答える