`
176170847
  • 浏览: 93768 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

flex socket 与java通信碰到的问题

    博客分类:
  • Flex
阅读更多

   其实就是粘包问题了。

 

   老实讲,到现在还是没搞明白SOCKET_DATA被触发的底层原理,猜测是否与as的轮询机制有关,谁完全了解,还请不吝指教。

 

   目前遇到的情况有多个封包黏在一起触发,因此flex socket缓冲区中会存在多个封包的内容,此时在读取的时候就需要进行拆包。

 

   一般的做法都是在正式数据封包的前面多+4个字节,用来存放一个长度值,代表其后紧跟的数据包的字节长度。

 

   但我这次在Java端用的amf封装,正式的包头也被amf给封装了,取的数据不完整是解压不出来的,还苦恼了好久如何取的长度,其实一样的,在Java使用amf格式封装完数据包后,再在其前面+4个字节放置长度值,就可以了。

 

   当然,也有可能一个完整的数据包到达客户端后,SOCKET_DATA被触发了多次,这样每次socket缓冲区中的数据就是不完整的,直接解压不了的,这时应该自己设一个全局bytearray,作为一个缓存,如果长度不够,将字节流存放在这个bytearray中,与下次来的字节流进行续接,直到长度=需要的字节流长度时,再进行字节流的解压,这就是合包/并包了。

 

   最后还需要进行出错处理。

 

   还要再看看网络传输,网络层和应用层的机制。

0
0
分享到:
评论
1 楼 0dragon 2012-04-23  
同求解啊

相关推荐

    Flex与Java Socket通信

    Flex与Java Socket通信 很适用的例子啊

    flex与JAVA的SOCKET通信

    flex与JAVA的SOCKET通信,详细讲解flex与JAVA的SOCKET通信

    flex+java+tomcat实现socket通信及安全策略

    2.重点解决安全策略问题:将flash发布为html格式后,本地访问页面后,一般可以与服务器进行socket通信;但是部署到tomcat服务器上后无法通信,这是因为flex安全策略引起的;需要在java服务端开通843权限策略,具体看...

    Flex和java的socket通信

    Flex和java的socket通信 Flex和java的socket通信

    flex+java的socket通信

    flex+java的socket通信,文本中说明了文件构成,可实现基本的flex与java基于socket的通信

    flex Socket 通信

    flex 和java 之间的相互通信

    Flex和java的socket通信.chm

    Flex和java的socket通信 连接 单向通信 多客户通信 一个简单的聊天室

    Flex_AS3与Java的Socket通信

    Flex的AS3与Java的Socket通信

    flex与java采用socket方式通信

    NULL 博文链接:https://xiegangthrille.iteye.com/blog/660219

    FLEX与JAVA通过SOCKET通信

    NULL 博文链接:https://fengyunxiao.iteye.com/blog/462763

    JsSocket,JS+FLEX+JAVA模拟的Js Soclet

    JsSocket 是使用js + flex + java开发的一套基于web的socket通信组件 主要解决大家在开发web项目时需要用到前台与后台时时通信时的问题,除了HTML5的WebSocket之外,之前大家使用的方法一般为:1、页面间断刷新;2、...

    精通Flex3.0 CHM电子书

    精通Flex 3.0――14.1.1 LCDS与服务端通信方式介绍 精通Flex 3.0――14.1.2 ActionScript与Java数据类型的转换 精通Flex 3.0――14.1.3 LCDS的内容结构 精通Flex 3.0――14.2 一个最基本的LCDS应用 精通Flex 3.0――...

    java网络聊天室

    该程序Server端用Java语言编写,Client端用FLEX4编写(可以方便转换成Java),所用数据库为MySQL,使用socket通信机制,可以实现简单的登录,密码验证,群聊、私聊等功能!

    动物乐园游戏 - 3 - 客户端源码

    Flex3,AIR1.0(好像是) Socket通信

    Merapi 的helloword例子

    Merapi 最简单的例子。实现AIR与JAVA之间的通信 。也是通过Socket实现的通讯的默认端口是1234 官方下载。

    vc代码合集

    2012-06-11 10:37 151,588 多线程Java Socket编程示例.html 2012-06-11 09:46 56,832 存储管理动态分区分配算法的模拟.doc 2012-06-11 09:45 32,389 完整的串口通信程序VC++源码.7z 2012-06-11 10:41 2,183,866 对...

Global site tag (gtag.js) - Google Analytics