私は暗号化されたデータを 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 バイトの文字です。
バイナリデータを生のまま送信する方法はありますか?