如何将多个用户连接在一起并发送每个连接的用户信息? (Java)

How can I connect multiple users together and send each connected user information? (Java)

我正在制作一个 Java 的 (Android) 应用程序,它要求我创建一个人可以主持的房间,然后其他用户可以加入,然后让所有用户在同时。

我的套接字服务器知识非常有限,所以我的理论是当用户决定主持一个房间时打开服务器,然后其他用户可以连接到这个服务器,然后每个连接的用户都会收到相同的信息。有人能给我指出正确的方向吗,顺便说一句,我正在 Java 中编写这个 (Android) 应用程序,我们将不胜感激。我对这一切都很陌生,所以请放纵一下。

你的问题很复杂。
如果你使用 TCP 协议,你必须使用更多的线程。
当客户端选择成为主机时,它将在 IpAddress 和端口上打开一个 ServerSocket。您可以查看 javaDoc 了解详细信息。
此时此客户端必须创建更多线程(使用 java.lang.Threadjava.lang.Runnable)。
每次另一个客户端想要加入房间时,它都会在另一个线程上。
您可以使用监视器来共享数据。 例如:

try {

        ServerSocket serverSocket = new ServerSocket(PORT);

        while (isOpen) {
            if (serverSocket != null) {
                Socket client= serverSocket.accept();
                new ComunicateClientThread(client, monitor).start();
            }
        }

    } catch (EOFException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

使用TCP协议,每个客户端都必须一直保持连接。
当客户端选择进入现有房间时,他必须知道主机的 IP 和端口。它将创建一个 Socket,因此可以使用 Stream 开始通信。 例如:

try {
        Socket socket = new Socket(address, port);
        ObjectInputStream inputData = new ObjectInputStream(socket.getInputStream());
        ObjectOutputStream outputData = new ObjectOutputStream(socket.getOutputStream());

    } catch (IOException | ClassNotFoundException e) {
        e.printStackTrace();
    }

我希望我说的很清楚。如果您还有其他问题,请告诉我,抱歉我的英语不好