我正在尝试配置系统客户端服务器。 服务器使用java服务器套接字,客户端使用和http url连接连接到服务器。
服务器的代码是:
private static ServerSocket server;
private static int port = 9876;
server = new ServerSocket(port);
while(true){
System.out.println("Waiting for the client request");
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
Object object = objectInputStream.readObject();
if (object instanceof String) {
String payload = (String) object;
System.out.println("Payload received from client: " + payload);
}
socket.close();
客户端的代码是:
int serverPort = 9876;
String serverURL = "http://localhost:" + serverPort;
Object payload = "Test payload";
HttpURLConnection connection = null;
try {
URL url = new URL(serverURL);
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStream outputStream = connection.getOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
objectOutputStream.writeObject(payload);
objectOutputStream.flush();
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
系统返回的错误是:java.io.EOFException这一行:
ObjectInputStream objectInputStream = new ObjectInputStream(inputStream).
可能是什么问题?
谢谢你的时间!
我尝试使用不同的函数来读取流,但我需要使用类 ObjectInputStream。 使用它,它不起作用。