热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我想知道c++和java之间通过ActiveMQ消息中间件怎么传输图片数据

如题:通过ActiveMQ这个中间件,怎么实现在C++和Java之间传输图像数据,或者更进一步,传输一个包含图像数据的结构体最先想到的方法是通过ActiveMQ本身自带的消息转换函数,但是又有
如题:通过ActiveMQ这个中间件,怎么实现在C++和Java之间传输图像数据,或者更进一步,传输一个包含图像数据的结构体

最先想到的方法是通过ActiveMQ本身自带的消息转换函数,但是又有疑问:通过C++转换成的字节流格式,在java接收端那边能不能正确接收到并反序列化成结构体信息。

后来想到的方法是采用一个json格式转换结构体数据,java接收端接收json格式数据并转换成结构体数据,又有一个疑问:这种方式能不能发送图片,如果图像数据太大的话能不能接收的到?

15 个解决方案

#1


为什么不用socket传输图片数据?

#2


引用 1 楼 brk1985 的回复:
为什么不用socket传输图片数据?


前人种树我们遮阴

#3


引用 1 楼 brk1985 的回复:
为什么不用socket传输图片数据?
已经引入中间件实现通讯了,如果用socket自己实现的话,那不是多次一举了又,还得自己定义传输协议,自己实现。就是想知道我从c++这端发送一个里面包含图片的结构体数据过去,java那边接收到这个数据流,能不能正确的解析出来,还没查到这方面相关资料,没有例子可供参考。现在在尝试一个方法:用一个MapMessage消息映射,分段发送过去,图像数据先转换成字符串数据,然后那边接收看,就只能先这样试一下。也不知道可不可行,存不存在隐患什么的

#4


引用 3 楼 zhu339111520 的回复:
Quote: 引用 1 楼 brk1985 的回复:

为什么不用socket传输图片数据?
已经引入中间件实现通讯了,如果用socket自己实现的话,那不是多次一举了又,还得自己定义传输协议,自己实现。就是想知道我从c++这端发送一个里面包含图片的结构体数据过去,java那边接收到这个数据流,能不能正确的解析出来,还没查到这方面相关资料,没有例子可供参考。现在在尝试一个方法:用一个MapMessage消息映射,分段发送过去,图像数据先转换成字符串数据,然后那边接收看,就只能先这样试一下。也不知道可不可行,存不存在隐患什么的


java貌似没有结构体这个概念,在发送数据包时,先发送文件头,再用二进制流传输过去,理论上只要java端能够接收到二进制流,根据文件头指出的图片长度,读取相应字节大小的二进制数据生成图片文件中就可以了

#5


通过C++转换成的字节流格式,在java接收端那边能不能正确接收到并反序列化成结构体信息=============java没有结构体,可以不用结构体,只要能把图片数据发送过去就ok了,只要java接收端能够接收到这些信息,那就可以通过解析获取想要格式的信息。。。

#6


引用 5 楼 brk1985 的回复:
通过C++转换成的字节流格式,在java接收端那边能不能正确接收到并反序列化成结构体信息=============java没有结构体,可以不用结构体,只要能把图片数据发送过去就ok了,只要java接收端能够接收到这些信息,那就可以通过解析获取想要格式的信息。。。
嗯,你说这些我也知道,具体怎么样还得试验下,一直忙的也没顾得上

#7


ActiveMQ本来就是JMS的实现,怎么可能JAVA会接收不到,只要定义好了消息结构就可以
放心用吧,我们以前在总行里的JAVA应用跟各省分行的前置机通讯都是用MQ,可以带附件

#8


传图片应该没问题,问题是图片通常比较大,会超过ActiveMQ消息大小的限制吧

#9


引用 7 楼 zapdos 的回复:
ActiveMQ本来就是JMS的实现,怎么可能JAVA会接收不到,只要定义好了消息结构就可以
放心用吧,我们以前在总行里的JAVA应用跟各省分行的前置机通讯都是用MQ,可以带附件
好的,我知道了,谢谢啦

#10


引用 8 楼 bluesen 的回复:
传图片应该没问题,问题是图片通常比较大,会超过ActiveMQ消息大小的限制吧

这个说是貌似可以设置最大传输大小

#11


应该是c++这边的进程 跟java这边的进程 通讯传输图片 通过你这个ActiveMQ相当于封装了通讯的socket  把应用层 的图片二进制字节流传给java服务端 这边收到完整的图片数据包 如果知道图片格式比如jpg ,bmp,gif等等 直接java保存成二进制文件 不就行了吗
不过看你的这个ActiveMQ 中间件功能了 比如比较大的数据包 要通过tcp分段传输 肯定要拼包 才能完整 是不是他都可以实现 

#12


为什么你要把图片看成是图片?
传输只管过程,不管开始和结果
你的程序两端都明白这些数据所代表的意思不就行了

#13


引用 11 楼 tangtangtangbaoli 的回复:
应该是c++这边的进程 跟java这边的进程 通讯传输图片 通过你这个ActiveMQ相当于封装了通讯的socket  把应用层 的图片二进制字节流传给java服务端 这边收到完整的图片数据包 如果知道图片格式比如jpg ,bmp,gif等等 直接java保存成二进制文件 不就行了吗
不过看你的这个ActiveMQ 中间件功能了 比如比较大的数据包 要通过tcp分段传输 肯定要拼包 才能完整 是不是他都可以实现 
嗯,前几天试了下,可以传,用MapMessage可以将结构体里的数据映射进去,然后发送一个Map,java那边可以接收到

#14


引用 12 楼 Sandrer 的回复:
为什么你要把图片看成是图片?
传输只管过程,不管开始和结果
你的程序两端都明白这些数据所代表的意思不就行了

试验了几次,将图片转成Bytes发送就可以了,C++这边是 vector   然后setBytes 发送,java那边通过Map里的字段名getBytes找对应的字段名,就可以把数据拿到了

#15


参考文献:

Active MQ C++实现通讯 

推荐阅读
  • 浅析对象 VO、DTO、DO、PO 概念
    作者|CatQi链接|cnblogs.comqixuejiap4390086.html前言由于此订阅号换了个皮肤,导致用户接受文章不及时。读者可以打开订阅号「Web项 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]jvm一行代码是怎么运行的首先,java代码会被编译成字 ... [详细]
author-avatar
麻廿_965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有