【发布时间】:2012-10-11 09:22:39
【问题描述】:
我正在努力通过 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个一个字节的字符。
我想知道有没有办法将二进制数据作为原始数据发送?
【问题讨论】:
标签: c sockets networking