【发布时间】:2019-06-03 09:08:16
【问题描述】:
我在服务器和客户端有两种方法:
服务器:
@Override
public void start(Stage primaryStage) throws Exception {
socket = new Socket("localhost", 9998);
System.out.println("connected");
input = new ObjectInputStream(socket.getInputStream());
System.out.println("1");
output = new ObjectOutputStream(socket.getOutputStream());
output.writeObject(new Message(CONFIG, "ping"));
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/window/fxmls/window.fxml"));
loader.setController(this);
AnchorPane anchorPane = loader.load();
Scene scene = new Scene(anchorPane);
primaryStage.setScene(scene);
primaryStage.show();
}
客户:
@Override
public void run() {
try {
serverSocket = new ServerSocket(9998);
while (true) {
Socket socket = serverSocket.accept();
System.out.println("connected");
input = new ObjectInputStream(socket.getInputStream());
System.out.println(1);
output = new ObjectOutputStream(socket.getOutputStream());
Message message = (Message) input.readObject();
if (message.getHeader() == CONFIG && message.getMessage().equals("ping")) {
System.out.println(message.getMessage());
}
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
当客户端开始运行时,使用 ObjecInputStream 发送检查消息"ping",但上述方法中的代码在System.out.println(1); 上停止我不知道为什么。之前类似的代码都在运行。我做错了什么? input = new ObjectInputStream(socket.getInputStream()); 正在等待我没有做的事情?
【问题讨论】:
标签: java sockets objectoutputstream