java - 将从 C 接收到的字符串转换为 Java 字符串

标签 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();

但是,当我 toast 时,str 值以奇怪的符号出现。我该如何解决这个问题?

最佳答案

你应该改变

send(clientSocket,buffer,4096,0); 

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

用这种方式你只发送你的字符串,而不是整个缓冲区。

另外我觉得

in.readLine()

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

关于java - 将从 C 接收到的字符串转换为 Java 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44176171/

相关文章:

java - 将 XML 中的元素分成单独的文件

android - 在 EditText 中输入开始新行的键而不是提交文本 (Android)

java - 如何在android中创建平滑的高度变化动画

计算二维数组中每列的负数

java - 创建 bufferedimage 仅保存 Panel 背景,而不保存其上绘制的内容

java - 抽象类是否扩展了对象?

java - 我收到很多 select @@session.tx_read_only,有人会这样做吗?

c# - C# 中的 Firebase 云消息传递

c - 高斯消元法及降维系统的求解

c - (int, const char *) 作为 uthash 库的复合键