PrintStream错误,没有原因



我正在制作一个服务器客户端系统,其中客户端将向服务器写入消息,服务器将其保存为字符串并在控制台上打印。但是当系统试图读取这行时,我在控制台中得到"PrintStream error"。没有错误之类的。我正在读取字符串,在服务器上,使用:

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()方法期望以特定的方式格式化数据(更多细节在这里),看起来像C#程序发送的数据没有以readUTF()方法可以正确解释的方式格式化。

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

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#程序使用的字符集

相关内容

  • 没有找到相关文章

最新更新