如何从Java中的DataInputStream获取字符串?

priyankvex

我正在开发一个由套接字组成的应用程序。它需要将字符串值从客户端(Android设备)传输到服务器(我的运行Ubuntu的PC)。在服务器端代码上,我需要将通过套接字传输的值存储在String变量中。

这是我用来将String值发送到服务器的代码。

//instantiating the socket object for the client
Socket client = new Socket("192.168.0.103", port);

OutputStream outToServer = client.getOutputStream();

DataOutputStream out = new DataOutputStream(outToServer);

String msg = "My String Value";

//Message to be send to server
out.writeUTF(msg);

//Closing the client's socket. No connections after this.
client.close();  

这是我用来在服务器上获取String值的代码。

//Server object. Stores the reference to the socket object returned by the accept()
//The returned socket object contains established connection to the client.
Socket server = serverSocket.accept();

DataInputStream in = new DataInputStream(server.getInputStream());
System.out.println(in.readUTF());
//This prints "My String Message"

//Something like this i want to do.
String msg = in.readUTF();

//closing the server socket. No connection now.
server.close();

现在正在发生的事情是服务器端的程序被卡在了一行:

String msg = in.readUTF();

将DataInputStream中的String值存储到String变量中的正确方法是什么?

戴维·康拉德

您只写入一次数据,另一方面尝试读取两次,但是只有一个数据副本可供读取。

DataInputStream in = new DataInputStream(server.getInputStream());
System.out.println(in.readUTF());
//This prints "My String Message"

这也将消耗流中存在的字符串的唯一副本。

现在正在发生的事情是服务器端的程序陷入了困境:

String msg = in.readUTF();

当您in.readUTF()第二次调用时,它将等待客户端发送更多的数据(另一个字符串),但是由于客户端从不发送更多的数据,它将永远等待(或者直到您杀死它,或者连接超时)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中的<>之间获取字符串

来自分类Dev

如何从java列表中获取字符串值

来自分类Dev

如何在Java中获取字符串中双引号之间的字符串

来自分类Dev

R如何获取字符串中的字符列表

来自分类Dev

如何从输入字符串中获取字符数?

来自分类Dev

PHP:如何获取字符串中的重复字符

来自分类Dev

PHP:如何获取字符串中的重复字符

来自分类Dev

如何获取字符串C ++中字符的值?

来自分类Dev

如何获取字符串中字符的位置?

来自分类Dev

如何从Java中的字符串从特定索引中获取字符

来自分类Dev

如何从Java中的字符串从特定索引中获取字符

来自分类Dev

从 Java 中的 JSON 响应中获取字符串

来自分类Dev

如何在Java中的两个字符之间获取字符串?

来自分类Dev

如何在Java中的两个字符之间获取字符串?

来自分类Dev

如何在Java中的两个字符之间获取字符串?

来自分类Dev

如何从bash中的文件中获取字符串?

来自分类Dev

Java:如何获取字符串的枚举值?

来自分类常见问题

从Java中的枚举获取字符串值

来自分类Dev

从变量数组java中获取字符串的长度

来自分类Dev

使用Regex从.java文件中获取字符串

来自分类Dev

从Java中的JSONPATH获取字符串字段

来自分类Dev

在 Java 中获取字符串 Zweibrücken

来自分类Dev

在java中获取字符串的变量值

来自分类Dev

在java泛型中获取字符串的长度

来自分类Dev

如何获取字符串中的xml节点值

来自分类Dev

如何从Powershell管道中获取字符串数组?

来自分类Dev

如何使用php从变量中获取字符串?

来自分类Dev

如何在JavaScript中获取字符串的货币

来自分类Dev

如何从列表框中获取字符串

Related 相关文章

热门标签

归档