`
hududanyzd
  • 浏览: 815596 次
文章分类
社区版块
存档分类
最新评论

AMF序列化为对象和AMF序列化为二进制字节流

 
阅读更多

在使用Flex作为页面前端驱动Socket通讯时,一般使用AMF格式来进行的发送和接收,因此就要涉及到不同的数据格式的转换。

下面提供了AMF序列化为对象和AMF序列化为二进制字节流的方法,代码如下:

//将AMF格式字节流转换为对象

public static T AMF_Deserializer<T>(byte[] buffer,int length)
{
MemoryStream stream = new MemoryStream(buffer,0,length);
ByteArray byteArray = new ByteArray(stream);
object obj = byteArray.ReadObject();
if (obj == null)
{
return default(T);
}
return (T)obj;
}

// 将对象转换为AMF格式的字节流
public static byte[] AMF_Serializer(object obj)
{
FluorineFx.AMF3.ByteArray byteArray = new FluorineFx.AMF3.ByteArray();
byteArray.WriteObject(obj);
byte[] buffer = new byte[byteArray.Length];
byteArray.Position = 0;
byteArray.ReadBytes(buffer, 0, byteArray.Length);
return buffer;

}


分享到:
评论

相关推荐

    AMF3 C++ 源码(修改版)

    3. **序列化与反序列化**:源码中的序列化功能允许将C++对象转换为AMF3格式的字节流,以便在网络中传输或存储。反序列化则是将接收到的AMF3数据转换回C++对象,便于程序处理。 4. **对象化处理**:AMF3能够识别和...

    amf3_spec_05_05_08.zip_AMF3_above flash player_player

    在AMF3中,数据被编码为二进制流,支持多种数据类型,包括基本类型(如整型、浮点型、字符串、布尔值)、复杂类型(如对象、数组、日期、null、undefined)以及自定义类实例。这种二进制编码使得数据在网络上传输时...

    amf3协议解析的例子

    4. **C++实现**:在C++中,你可以创建自定义的类来处理AMF3解码逻辑,这个类可能会包含解析字节流、识别数据类型、创建和填充树节点的方法。同时,你需要集成MFC框架,使用CTreeCtrl来显示和操作树结构。 5. **MFC_...

    amf解析构造.rar

    AMF格式的优点在于它的高效性和压缩性,它能将复杂的数据结构如对象、数组、日期等转换为二进制流,从而减少网络传输的负载。 在易语言中解析AMF,首先需要理解AMF的数据结构,包括基本类型如整型、浮点型、字符串...

    AMF3 format

    **AMF3**(Action Message Format 3)是 Adobe 公司推出的一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦对象图被序列化为 AMF 编码,就可以在不同的会话之间持久存储和检索应用程序的公共状态,或者...

    AMF格式文件

    AMF(Action Message Format)是Adobe公司开发的一种紧凑的二进制格式,用于序列化ActionScript对象图。AMF格式文件最初在Flash Player 6中引入,并被广泛应用于网络通信,特别是在Adobe Flex框架和BlazeDS中间件中...

    amf0 原版文档 完整版

    AMF0将复杂的数据结构,如对象、数组、日期、字符串等,转化为二进制流,使得在网络传输中占用的带宽更少,从而提高了应用的响应速度。 在AMF0规范文档《amf0_spec_121207.pdf》中,可能会涵盖以下几个关键知识点:...

    易语言amf解析构造源码

    通过阅读和学习这份源码,我们可以深入理解AMF协议的工作原理,以及易语言如何处理二进制数据和序列化。 在实际应用中,这样的源码可以用于开发游戏服务器、富媒体交互系统或者任何需要与Flash客户端通信的项目。...

    amf解析构造易语言源码

    它允许应用程序将复杂的数据结构如对象、数组、日期等转换为二进制流,以便在网络上传输。AMF格式有两种版本:AMF0(也称为AMF3)和AMF3,AMF3是更新且更优化的版本,通常用于Flash Player 9及更高版本。 易语言是...

    amf0_spec_121207.zip_amf0_amf0_spec_1212_player

    在AMF0中,这意味着将ActionScript对象转化为字节流,以便在网络上传输或者存储到磁盘。另一方面,“communication”指的是AMF0如何作为Flash Player与服务器之间交换数据的媒介,比如在使用Flash Remoting时,...

    amf3_spec_05_05_08.pdf

    Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可以用于在不同会话之间持久化和检索应用程序的公共状态,或者允许两个端点通过交换强类型数据...

    netty encode decode

    总结来说,Netty 的编码和解码功能是其强大之处,它简化了二进制数据和字符串在网络传输中的处理,特别是 AMF3 这种高效序列化格式的处理。通过深入理解和使用 Netty 的编码器和解码器,开发者能够构建出高效、可靠...

    libamfx 库

    AMF 是一种高效、二进制的数据序列化格式,广泛应用于 Adobe Flash 平台,特别是 ActionScript 与服务器之间的数据交换。由于其轻量级和高效的特性,AMF 也被其他非 Adobe 技术采用,例如游戏开发、实时通信等领域。...

    Python库 | PyAMF-0.5-py2.5-linux-x86_64.egg

    你可以将Python对象编码为AMF字节流,然后在网络上传输,或者接收AMF数据并解码为Python对象。 2. **Remoting服务**:PyAMF支持Remoting,允许Python服务与Flash客户端之间进行远程调用。通过AMF协议,可以透明地...

    AMFPHP

    1. **AMF协议**:AMF是一种二进制序列化格式,能够将复杂的数据结构(如对象、数组、日期等)高效地编码为字节流,再解码回原来的结构。相比于XML或JSON,AMF在数据传输中具有更高的效率和更小的带宽需求。 2. **...

    Flex与java通讯

    它将对象序列化为紧凑的字节流,减少了网络传输的开销,提高了性能。AMF支持两种版本,AMF0和AMF3,其中AMF3提供了更好的压缩和性能。 3. **HTTP、HTTPS和WebSockets** Flex和Java可以通过HTTP或HTTPS协议进行通信...

    amfphp-2.2.2.zip

    AMF的优势在于它的序列化和反序列化能力,能够快速地将复杂的数据结构(如对象、数组、日期等)转换为字节流,从而在网络上传输。这使得它成为富互联网应用程序(RIA)如Flash和Flex的理想选择,因为这些应用程序...

    Flex与后台交互的方法

    它能将ActionScript对象序列化为字节流,大大提高了数据传输的效率。通过Adobe的 BlazeDS 或 LCDS 服务,Flex应用可以使用AMF来调用远程对象(Remote Object)或发送消息(Message Broker)到Java、ColdFusion或.NET...

    myamfphp 实现php与flex交互

    1. **AMF协议**:AMF是Adobe开发的一种二进制数据序列化格式,它允许数据以高效的方式在网络上传输。AMF分为两种版本,AMF0和AMF3,myAMFPHP支持两者。AMF能将复杂的数据结构(如对象、数组、日期等)转换为字节流,...

    flv视频文件元数据的注射器.zip

    总之,理解和操作FLV文件元数据是多媒体处理中的一个重要环节,尤其在C#编程环境下,需要掌握二进制操作和AMF解码技巧。通过创建元数据注射器,我们可以灵活地对视频文件的属性进行调整,以满足各种业务需求。

Global site tag (gtag.js) - Google Analytics