【发布时间】:2022-12-15 19:47:49
【问题描述】:
我不想创建聊天所以我有服务器和客户端;服务器代码:
serverSocket = new ServerSocket(8080);
mainSocket = serverSocket.accept();
out = new PrintWriter(mainSocket.getOutputStream());
in = new BufferedReader(new InputStreamReader(mainSocket.getInputStream()));
gui = new JavaFXGUI();
gui.setIn(in);
gui.setOut(out);
gui.run()
客户端代码:
clientSocket = new Socket("127.0.0.1", 8080);
out = new PrintWriter(clientSocket.getOutputStream());
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
gui = new JavaFXGUI();
gui.setIn(in);
gui.setOut(out);
gui.run()
JavaFX图形用户界面:
public class JavaFXGUI extends Application{
private BufferedReader in;
private PrintWriter out;
private ChatController chatController;
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader();
URL xmlUrl = getClass().getResource("/GUI/scenes/mainScene.fxml");
loader.setLocation(xmlUrl);
System.out.println(in);
chatController = new ChatController(out,in);
loader.setController(chatController);
Parent root = loader.load();
primaryStage.setTitle("Chat");
primaryStage.setWidth(800);
primaryStage.setHeight(450);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public void run() {
launch();
}
public void setIn(BufferedReader in) {
this.in = in;
}
public void setOut(PrintWriter out) {
this.out = out;
}
}
所以问题是在 start 方法中,输入和输出参数为空,为什么会发生这种情况,我该如何解决。 (我试图在构造函数中传入和传出但它抛出错误)
【问题讨论】: