我正在編寫一個程序,該程序將與運行Java的另一臺計算機進行交互,並且需要通過網絡發送字符數組。在接收端,Java程序使用DataInputStream的readChar()函數並期望字符。但是,由於字符在C中存儲爲1個字節,所以在寫入網絡時遇到了一些麻煩。將C字符轉換爲UTF-16以通過網絡傳輸
我該如何去轉換呢?
實際協議規範是像這樣:
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中接收端,和短不會正確地發送正確的長度,但字符數組不會。
在此先感謝!
將轉換您的文字嗎?我知道C到Java的數據交換可能是一個真正的痛苦:) :) – JScoobyCed
使用'byte'數組而不是'char'。 –