我正在努力通过 C 中的套接字发送加密数据。一切正常,直到我意识到正在发送的数据的大小比它应该的要大得多。下面的一段代码描述了这种情况:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
char temp[100], buffer[100];
int n = 1234567890;
sprintf(temp, "%d", n);
printf("Original n has size: %d\n", sizeof(n)); // 4
printf("Buffer size: %d\n", strlen(temp)); //10
printf("Buffer: %s", temp);
}
问题是原始数字存储为 4 字节整数,而缓冲区是逐字符存储的,因此通过套接字发送的不是 4 个字节,而是 10 个一字节字符。
我想知道有没有办法将二进制数据作为原始数据发送?