gpt4 book ai didi

java - PrintStream 无缘无故出错?

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:47 25 4
gpt4 key购买 nike

我正在制作一个服务器客户端系统,其中客户端将向服务器写入一条消息,服务器将其保存为字符串并将其打印在控制台中。但是,当系统尝试读取该行时,我会在控制台中收到“PrintStream 错误”。没有错误或任何东西。我正在服务器上读取字符串:

DataInputStream inFromClient = new DataInputStream(socket.getInputStream());
String connectReason = inFromClient.readUTF();

我从客户端发送字符串,如下所示:

clientSocket = new TcpClient(Host, Port);
Stream = clientSocket.GetStream();
outToServer = new StreamWriter(Stream);

为什么我会收到这个错误?它们连接时没有错误,当我到达该行时,我收到“PrintStream Error”。

最佳答案

readUTF() 方法期望数据以特定方式格式化 ( more details here ),由类似 C# 程序发送的数据未采用 readUTF() 方法可以正确解释的方式格式化。

您可以从套接字的输入流读取原始字节并将其转换为字符串,例如:

try(InputStream in = socket.getInputStream()){
byte[] b = new byte[1024];
String msg = "";
for(int r;(r = in.read(b,0,b.length))!=-1;){
msg += new String(b,0,r,"UTF-8");
}
System.out.println("Message from the client: " + msg);
}catch (Exception e) {
e.printStackTrace();
}

将“UTF-8”替换为 C# 程序使用的字符集。

关于java - PrintStream 无缘无故出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com