0

我正在用c编写一个服务器程序,客户端在使用java语言的android平台上。现在我无法将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 + "");
}
4

2 回答 2

1

您发送了 16 个字符,但您只读取了 4 个字符。你没有得到数据 48 48 48 56 吗?这些是发送的前四个字符的代码。

于 2014-06-03T12:50:46.093 回答
0

尝试检查读取 char 数组时在客户端获得的值,您可能正在执行 br.readline(); 看看这是否打印字符?您需要调试和检查,然后您可能会想出一些方法。

于 2013-03-01T03:36:29.563 回答