将从C接收的字符串转换为Java String

时间:2017-05-25 08:46:45

标签: java android c string sockets

我想转换我从C发出的字符串,并在Java中将其作为字符串值接收。

这是我在C中发送字符串的代码。

strcpy(buffer,"hello");
send(clientSocket,buffer,4096,0);

我的代码用Java接收字符串。

BufferedReader in = new BufferedReader(new InputStreamReader(LoginActivity.getSocket().getInputStream()));
String str = in.readLine();

然而,当我做吐司时,str值出现在奇怪的符号中。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

你应该改变

send(clientSocket,buffer,4096,0); 

send(clientSocket,buffer,strlen(buffer)+1,0);

通过这种方式,您只发送字符串,而不是整个缓冲区。

而且我认为

in.readLine()

挂起,期待一个不是字符串发送的换行符。

答案 1 :(得分:0)

您应该使用InputStreamReader(InputStream in, String charsetName)构造函数版本并传递用于在C中创建文本的charsetName