创建博客 登录  
 加关注
   显示下一条  |  关闭

简单快乐,健康,井井有条-郑邦旭-okd

压力到底有多大呢?其实都大不过你那颗像拳头般的心..压力本是人的想象.

 
 
 

日志

 
 

JAVA和FLASH在SOCKET下通信.拼装数据最后转成AMF3对象.  

2009-01-08 10:22:20|  分类: 编程 - Flex FLAS |  标签: |字号 订阅

服务端发数据过来.如果数据量大.
会分为几次发送.
如果真接用读对象,会报错."遇到文件尾".
那就需要拼装数据流.在把数据流存到ByteArray中.
在利用和服务端协商数据流最后结尾的ASCII码是多少.
在边收数据边判断是不是到数据流的结尾.
如果结尾就把刚才分次读出来的数据.整理成一个AMF3对象.

具体操作如下:

客户端:FLASH

接受数据

var dataTemp:int;
internal function dataHandler(event:ProgressEvent):void{
 while(_Socket.bytesAvailable){
  var abcd:int = _Socket.readByte();
  //ASCII 126
  if(abcd == 126){
   trace("结尾")
            byte.position = 0;
   funSocket(_Socket.readByte());
  }else{
   getObject(abcd);
        }
 }

}
 
var byte:ByteArray  = new ByteArray();
private function getObject(obj:int):void{
 byte.objectEncoding = ObjectEncoding.AMF3;
 byte.writeByte(obj);
}

 

JAVA端:

fer buf = ByteBuffer.allocate(messageBytes.length).setAutoExpand(true);
  buf.put(messageBytes);
  byte[] temp = "~".getBytes();
  buf.put(temp);
  buf.flip();
  out.write(buf);

JAVA在数据结尾加"~".  //ASCII 126

  评论这张
转发至微博
转发至微博
1   分享到:        
阅读(811)| 评论(1)| 引用 (0) |举报

历史上的今天

相关文章

最近读者

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012