mina服务端和C++客户端的通信问题?

多乐乐 发布于 2011/05/08 18:24
阅读 3K+
收藏 1

有没有大侠在项目中用到过mina服务端和C++客户端的数据包传输,协议数据包格式包括包头和数据,包头中有几个属性信息,比如包头标示、协议类型、数据类型、数据长度,数据信息是用到protocol buffer封装的信息,如果C++方发送数据包过来,现在这边的mina服务端方怎么解析的,自己写个过滤器吗?还是mina中有过滤器直接使用?C++的protocol buffer封装的数据,能用java的protocol buffer解析吗(他们用的是同一个proto文件,但客户端生成的C++文件,java生成的是JAVA文件)?还有C++发一个数据包,可能服务端接受到2个包,才是发送的一个整包吗?  接受到的2个包中,可能是C++发送的一个包,有没有可能包含发送的一个包和另一个包的一部分呢?   希望有过经历的大侠,说说思路。。

加载中
0
多乐乐
多乐乐
问题已经解决。。。
0
王振威
王振威

我也是才接触,用过一次,由于传输的数据比较简单,直接用mina的TextLineCodecFactory,c++那边的socket直接写字符串,然后一分行符做结尾就行了,c++接包的话就得自己写解析了,我是用消息头部写上消息长度,然后c++那边检测一下包的长度,大致就这样

0
多乐乐
多乐乐

引用来自#2楼“王振威”的帖子

我也是才接触,用过一次,由于传输的数据比较简单,直接用mina的TextLineCodecFactory,c++那边的socket直接写字符串,然后一分行符做结尾就行了,c++接包的话就得自己写解析了,我是用消息头部写上消息长度,然后c++那边检测一下包的长度,大致就这样

你java输出包是write字符数组过去吗?比如session.write(byteArray);那边接受字符数组?

0
王振威
王振威

引用来自#3楼“多乐乐”的帖子

引用来自#2楼“王振威”的帖子

我也是才接触,用过一次,由于传输的数据比较简单,直接用mina的TextLineCodecFactory,c++那边的socket直接写字符串,然后一分行符做结尾就行了,c++接包的话就得自己写解析了,我是用消息头部写上消息长度,然后c++那边检测一下包的长度,大致就这样

你java输出包是write字符数组过去吗?比如session.write(byteArray);那边接受字符数组?

是String

0
卢作晋
卢作晋

protocol buffer的出现就是为了各种语言之间数据解析的问题的,  同一个proto文件的东西 生成的java, c++代码是直接可以解析的

0
多乐乐
多乐乐

引用来自#5楼“卢作晋”的帖子

protocol buffer的出现就是为了各种语言之间数据解析的问题的,  同一个proto文件的东西 生成的java, c++代码是直接可以解析的

那这样的话,解决一个疑问就是传过来的protocol buffer数据,java能解析成对象

0
颖辉小居
颖辉小居
怎么解决的啊?5年前的帖子了。我愁死了 不知道怎么办
返回顶部
顶部