c++与flex利用json通信
来源:互联网 发布:网络歌手夕阳醉了 编辑:程序博客网 时间:2024/06/15 23:31
c++与flex之间的通信,socket可以发送结构体、自定义类以及字符串。结构体与自定义类c++和flex双方都要声明结构,无法像java可以直接发送map,而flex也可以直接解析的。然而,我们可以利用json做为数据结构,json是一种轻量级的数据结构,相比起XML具有解析效率高等优点。
首先我们看一json的结构如下:
{
}
结构简洁,name="yokia",age=24,有点像map,这正是我们所需要的。在c++与flex中使用json,我们需要几个额外的包来解析json。
c++中我们使用jsoncpp这个包,flex中我们使用corelib.swc。我们将jsoncpp中的源文件复制到项目,corelib.swc拷到flex项目的libs下。
我们来看c++中的接收代码:
char *buff = (char *)malloc(126);
int retVal = recv(s,buff,126,0);
buff[retVal] = '\0';
string str = buff;
JSON::Reader reader;
JSON::Value value;
if(reader.parse(str,value))
}
至此,我们已将数据解析成json,并进行处理。
上面将buff转成string类型,注意char *仅仅是一个地址,将数据转换成string后,便可以利用jsoncpp中的函数解析成json了。这样,c++只需要知道flex传过来的key值,便可获取value值。
接下来我们看下flex中的代码,在flex连接c++成功后:
import com.adobe.serialization.json.*;
var jsonObj:Object = new Object();
var jsonStr:String;
var msg:ByteArray=new ByteArray();
_socket.writeObject(msg);
以上我们便将数据发送到c++服务器了。。其中JSON.encode是将Object类型转换成String,当然也有将String转换成Object,那便是JSON.decode(String str),这样便可将c++服务器传来的string转换成flex中的Object。
通过以上操作,我们便可实现c++与flex之间利用json进行通信。双方不需要声明任何数据结构,只需要知道KEY值便可。
- c++与flex利用json通信
- Flex Socket 与 C# 通信
- Flex使用JSON格式与Java通信
- 利用Socket实现C++与Flex通信
- 利用Socket实现C++与Flex通信
- 利用Socket实现C++与Flex通信
- FLEX利用Socket与java进行通信
- Flex与C#socket通信(二)
- 利用Socket实现C++与Flex通信(转)
- 利用Socket实现C++与Flex通信(转)
- 利用HTTPService实现Flex与服务器端低数据量通信
- flex 利用json读写数据
- flex与xml通信
- Flex与WebService通信
- Flex 与 servlet 通信
- FLEX与HttpService通信
- java与flex通信
- Flex与服务器端通信
- PPP协议简介
- Zend Studio安装后的一些配置
- Android模拟器中访问局域网地址
- Documentation\device-mapper\dm-io
- 再忆《浪潮之巅》
- c++与flex利用json通信
- 国内首部基于JBPM5.4实战流程引擎开发(动态表单、模板引擎、公文管理系统)
- 实战DeviceIoControl 之四:获取硬盘的详细信息
- hbase coprocessor小实践引发的对coprocessor异常处理机制的探究
- 超键、候选键和主键
- pv如何正确统计
- MonetDB用户指南4——(资源)压缩
- 浅谈Linux驱动程序框架
- SVN服务器搭建和使用(一)