static void MakeHead(WORD cmd, char * buf, ULONG& len, UINT val=0)
{
cmd = htons(cmd);
unsigned long ulIndex = 0;
/*<!-------------- Group Code ------------------->*/
buf[ulIndex++] = (CHAR)0xDF;
short wn = ::htons(0x01);
/*<!-------------- Command ID ------------------->*/
// 第一个参数是目标地址,第二个参数是原地址,第三个参数是复制多少字节
::memcpy(&buf[ulIndex], &cmd, 2); ulIndex+=2;
/*<!---------------- Version -------------------->*/
buf[ulIndex++] = 1;
/*<!------------- Command Flag ------------------>*/
ulIndex+=4;
/*<!------------- Total Segment ----------------->*/
wn = ::htons(0x01);
//std::cout << "(network) total segment=" << wn << std::endl;
::memcpy(&buf[ulIndex], &wn, 2); ulIndex+=2;
/*<!-------------- Sub Segment ------------------>*/
wn = ::htons(0x01);
//std::cout << "(network) sub segment=" << wn << std::endl;
::memcpy(&buf[ulIndex], &wn, 2); ulIndex+=2;
/*<!------------- Segment Flag ----------------->*/
ulIndex+=2;
/*<!--------------- Reserved1 ------------------->*/
ulIndex+=2;
/*<!--------------- Reserved2 ------------------->*/
ulIndex+=4;
/*<!---------------- Payload -------------------->*/
if (cmd == htons(0x0A09))
{
val = htonl(val);
memcpy(&buf[ulIndex], &val, 4); ulIndex+=4;
}
//输出字符a的地址
len = ulIndex;
}
对接C++socket打包发送与解析,打包解包一律使用网络字节序(大端)java该怎么实现?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Mr.Qubb 2020-12-16 20:37关注
第一种方式建议你用netty,很方便的;
第二种方式百度java tcp, 一大堆socket连接的代码,你就在接收数据那里进行你的业务判断
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题