繁体   English   中英

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

[英]How to send C char array to Java client over a socket

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

您正在发送16个字符,但您只能读取四个字符。 您没有获得数据48 48 48 56吗? 这些是发送的前四个字符的代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM