如何通过套接字将C char数组发送到Java客户端

时间:2013-03-01 03:24:34

标签: java c arrays sockets char

我正在用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 + "");
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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