Java を実行している別のマシンとやり取りするプログラムを作成しており、ネットワーク経由で文字配列を送信する必要があります。受信側では、Java プログラムは DataInputStream の readChar() 関数を使用し、文字を想定します。ただ、Cでは文字が1バイトで格納されるので、ネットワークへの書き込みに苦労しています。
これを変換するにはどうすればよいですか?
実際のプロトコル仕様は次のようになります。
short: Contains length of char array
char 1, 2, 3...: The characters in the array
背景情報については、私の短い変換は次のようになります。
char *GetBytesShort(short data)
{
short net_data = NET_htons(data);
char *ptr = (char *) malloc(sizeof(short));
memcpy(ptr, &net_data, sizeof(short));
return ptr;
}
Javaの受信側でテストしましたが、短いものは正しい長さで正しく送信されますが、文字配列は送信されません。
前もって感謝します!