我是靠谱客的博主 失眠小兔子,最近开发中收集的这篇文章主要介绍java和lora通信_Java与C++Socket通讯注意,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c++与java进行socket通信时注意事项     因为java发送的都是网络字节序(big-endium),而c++是主机字节序(little-endium),所以当消息中有整型,浮点型(应尽量避免使用)的时候需要用htonl,htons,ntohl,ntohs等函数转换一下,字符串由于是单字节排序的不需要转换,但应注意c++字符串是以'/0'作为结束符的,如果找不到'/0'可能会出现一些乱码,所以接收的时候可以分配一个length+1的buffer用来接收消息.

举例:c++ server, java client,假设开发的是c++ server,那么:

java client--------->c++ server: c++ server需要调用ntohs,ntohl

c++ server--------->java client: c++ server需要调用htons,htonl

至于浮点型可以使用以下的函数转换:

float tcp_htonf(float f)

{

unsigned char *p, p0, p1;

if(htons(1) ==1) return f;

p =(unsigned char *)&f;

p0 =p[0];

p1 =p[1];

p[0] =p[3];

p[3] =p0;

p[1] =p[2];

p[2] =p1;

return f;

}

float tcp_ntohf(float f)

最后

以上就是失眠小兔子为你收集整理的java和lora通信_Java与C++Socket通讯注意的全部内容,希望文章能够帮你解决java和lora通信_Java与C++Socket通讯注意所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部