如何同时处理 2 个进程但仍然响应 gui java

问题描述 投票:0回答:0

所以我制作了一个具有 gui 并且可以同时作为客户端/服务器的程序,但是我的程序只处理一个进程,例如作为服务器等待客户端连接并等待它,但在那之后我的程序被冻结了

This is server 

public void server(int port) {
        try {
            try (ServerSocket server = new ServerSocket(port)) {
                serverStatus = ("Server telah dimulai di port " + port);

                while (true) {
                    // Menunggu koneksi dari client
                    serverStatus = ("Menunggu koneksi dari client...");
                    Socket robot = server.accept();
                    serverStatus = ("Terhubung");
               

                    // Menambahkan koneksi client ke daftar koneksi
                    robotSockets.add(robot);

                    // Membuat thread untuk menangani setiap koneksi client
                    Thread robotThread = new Thread(new ClientHandler(robot));
                    robotThread.start();
                }
            }

为客户服务

public void client(Consumer<String> onMessageReceived) {
        Thread clientSideThread = new Thread(() -> {
            try {
                InputStream inputStream = socket.getInputStream();
                byte[] buffer = new byte[1024];
                int bytesRead;
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    String message = new String(buffer, 0, bytesRead, StandardCharsets.UTF_8);
                    onMessageReceived.accept(message);
                }

            } catch (IOException e) {
                e.printStackTrace();
                if (!socket.isClosed()) {
                    this.statusKoneksi = "Terputus";
                }
            }
        });
        clientSideThread.start();
    }

那么如何让这个程序可以处理服务器和客户端,但仍然可以响应?,因为服务器等待客户端连接,同时客户端可以连接到服务器?

java client-server
© www.soinside.com 2019 - 2024. All rights reserved.