gpt4 book ai didi

java.io.StreamCorruptedException : invalid stream header: 54657374

转载 作者:IT老高 更新时间:2023-10-28 20:45:38 28 4
gpt4 key购买 nike

我正在尝试使用Socket程序读取从客户端发送的字符串,代码如下:

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServerExample {

//static ServerSocket variable
private static ServerSocket server;
//socket server port on which it will listen
private static int port = 5000;

public static void main(String args[]) throws IOException, ClassNotFoundException{
//create the socket server object
server = new ServerSocket(port);
//keep listens indefinitely until receives 'exit' call or program terminates
while(true){
System.out.println("Waiting for client request");
//creating socket and waiting for client connection
Socket socket = server.accept();
//read from socket to ObjectInputStream object
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
//convert ObjectInputStream object to String
String message = (String) ois.readObject();
System.out.println("Message Received: " + message);
//create ObjectOutputStream object
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
//write object to Socket
oos.writeObject("Hi Client "+message);
//close resources
ois.close();
oos.close();
socket.close();
//terminate the server if client sends exit request
if(message.equalsIgnoreCase("exit")) break;
}
System.out.println("Shutting down Socket server!!");
//close the ServerSocket object
server.close();
}

}

但是在从客户端读取字符串时出现如下错误:

Exception in thread "main" java.io.StreamCorruptedException: invalid stream header: 54657374
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:803)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298)
at SocketServerExample.main(SocketServerExample.java:29)

我搜索并没有找到错误。请帮帮我。

最佳答案

显然,您没有使用 ObjectOutputStream: 发送数据,您只是在写入字节。

  • 如果你用 readObject() 读,你必须用 writeObject() 写。
  • 如果您使用 readUTF() 读取,则必须使用 writeUTF() 写入。
  • 如果您使用 readXXX() 读取,则必须使用 writeXXX(), 写入大多数 XXX 值。

关于java.io.StreamCorruptedException : invalid stream header: 54657374,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262160/

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