我正在编写一个程序,它将与另一台运行 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 的接收端对其进行了测试,并且确实以正确的长度正确发送了 short ,但字符数组却没有。
提前致谢!