【发布时间】:2020-05-20 22:22:21
【问题描述】:
我正在使用 java 并从服务器接收到一些 json 字符串。我收到了带有 readUTF 的 json 字符串,但丢失了一些数据。我没有收到每个 json 数据包的前两个字符。 另一个问题是接收到的 json 字符串有延迟。例如,服务器发送了一个 json 字符串,客户端无法接收到它,直到服务器和客户端发送的大约 50 个 json 字符串突然显示所有 json 字符串。 主要问题是什么?
public void run() {
System.out.println("hi from thread" + id);
try {
clientSocket = new Socket("192.168.1.22", id);
output = new PrintStream(clientSocket.getOutputStream());
input = new DataInputStream(clientSocket.getInputStream());
inputLine = new DataInputStream(new BufferedInputStream(System.in));
}
catch( IOException e){
System.out.println(e);
}
String responseLine;
try{
while(true){
output.println( id + " ");
System.out.println("sent:" + id + " ");
responseLine = input.readUTF();
System.out.println("received: " + responseLine);
}
}
catch (IOException e) {
System.out.println(e);
}
}
由于服务器发送的数据是UTF格式的,所以我用Bufferedreader收不到数据
【问题讨论】:
-
您应该向我们展示代码。但我可以说,你的问题很可能是 DataInputStream 和 readUTF() 的使用。仔细阅读DataInput.readUTF 文档。前两个字节被解释为要读取的字节数。这真的是你想要的吗?发件人真的以这种方式创建字节吗?
标签: java json datainputstream