php做为socket客户端如果发送实体类(bean)给JAVAsocket服务端?

发布于 2022-09-06 02:18:10 字数 671 浏览 23 评论 0

由于JAVA服务端是其他人开发的, 现在只有一份协议文档. 现在做了一个扫码开箱的功能. APP + JAVA + socket的方式. 由于业务需求现在要增加小程序扫码开箱的方式.

通过查看安卓的源码与服务端的JAVA代码ps:LZ自身只会PHP是同事看的APP发送的是一个实体类给后端的. 那么PHP怎么搞一个实体类给JAVA, 还是可以使用其它方案解决?

更新...

Byte bytes[26] = {0,8,0,22,[marr[0] intValue],[marr[1] intValue],[marr[2] intValue],[marr[3] intValue],0,0,0,1,0,0,0,0,0,0,0,0,[mmarr[0] intValue],[mmarr[1] intValue],[mmarr[2] intValue],[mmarr[3] intValue],0x0D,0x0A};
send(self.clientSocket, bytes, 26, 0);

上面一段是ios APP里的一段, 发送的是一个Byte. 那是不是PHP转成一个Byte发送就行呢?

查阅的资料

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枯寂 2022-09-13 02:18:10

发送的不是实体类, 传输过程叫数据流. 程序接到后是二进制.

而JAVA里的byte是基本变量类型. C, python, php, nodejs, 只有JAVA才有byte的类型.

一个byte等于八位的二进制 如: 0000 1111, 二进可以转成对应的ASCII码或unicode码.

虐人心 2022-09-13 02:18:10

发送实体类肯定是要序列化成字节的,看看安卓那边用的什么序列化框架。如果是支持跨语言的那就好办,不支持就和JAVA服务器端的人商量下特殊处理吧。

花开雨落又逢春i 2022-09-13 02:18:10

如过没有现成的框架或sdk的话会很麻烦,因为php根本没有字节这个东西,需要pack,unpack各种转成二进制,而且需要注意大小端字节序,还有需要多线程或多进程来实现心跳包、守护进程等,而php对这方面支持不是很好。
可以试下swoole或者workman看看能不能实现吧,应该也不是很好实现,需要配合服务端java各种调试的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文