我想转换我从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值出现在奇怪的符号中。我该如何解决这个问题?
答案 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