我正在用c语言编写服务器程序,客户端在android平台上使用java语言。现在我很难将char数组从服务器发送到客户端,这意味着客户端可以获取数据但是无法解码它。我想也许是因为数据类型或编码差异的问题。任何人都可以给我一些想法,非常感谢!
这是我的服务器端代码:
char buf[MAXSIZE];
memset(buf, 0, MAXSIZE);
int n_write;
strcpy(buf, "0008200050005001");
n_write = Write(confd, buf, strlen(buf));
if (n_write <= 0)
{
fputs("Write error in send_matrix_and_position\n", stderr);
close(confd);
return -1;
}
这是Java代码:
mSocket = new Socket(HOST, PORT);
mIn = mSocket.getInputStream();
mOut = mSocket.getOutputStream();
byte[] lengthByte = new byte[4];
mIn.read(lengthByte);
for(byte b : lengthByte)
{
System.out.println(b + "");
}
答案 0 :(得分:1)
您发送的是16个字符,但您只读了4个字符。阿伦你得到的数据 48 48 48 56?这些是发送的前四个字符的代码。
答案 1 :(得分:0)
尝试检查在读取char数组时在客户端获得的值,您可能正在执行br.readline();看看这是否打印出人物? 你需要调试和检查,然后你可能会想出一些方法。