c - 如何用C语言将长度添加到字符数组缓冲区的末尾

标签 c iso8583

我必须向收单方服务器发送一条 ISO8583 消息,交换机希望我在整个消息之前发送带有 APDU 长度的消息,但我不知道如何发送。长度为4字节。

示例:我想发送消息(PAN-到期日期)4427680000628820 1014

标题:30353530 留言:44276800006288201014

我想通过套接字发送:30353530(00000014=十进制的20)4427680000628820(PAN)1014(Exp)

这应该给我:303535300000001444276800006288201014

其实我很喜欢这个

buf[0]=0x30
buf[1]=0x35
buf[2]=0x35
buf[3]=0x30

如何在buf[3]后面添加长度00000014?

最佳答案

您可以像处理前 4 个字节一样继续:假设您的总消息长度(在示例中为 0x00000014)存储在 32 位变量“len”中,请添加长度 header

buf[4] = (uint8_t)((len >> 24ul) & 0xFF);
buf[5] = (uint8_t)((len >> 16ul) & 0xFF);
buf[6] = (uint8_t)((len >> 8ul) & 0xFF);
buf[7] = (uint8_t)(len & 0xFF);

关于c - 如何用C语言将长度添加到字符数组缓冲区的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757950/

相关文章:

c - 在 CUDA C 中打开文件

c - 从 C 程序中的 .xml 文档获取 IP

java - 使用 JPOS 的 PISO 8583 子字段

java - 使用 JPOS 库打印 iso-8583 消息

java - j8583:ISOMessage 解析器未按预期生成输出

iso8583 - 使用 jpos 解压 ISO8583 版本 93

c - 如何在使用 FreeRTOS 时保持代码的可移植性

c - 处理 strcpy 的返回类型的正确方法是什么

java - 运算符作为 java 中的变量名称与 c 中的 #define 相同

java.lang.ClassNotFoundException : org. jpos.iso.ISOException 异常