如何将多个用户连接在一起并发送每个连接的用户信息? (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.Thread
或 java.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();
}
我希望我说的很清楚。如果您还有其他问题,请告诉我,抱歉我的英语不好
我正在制作一个 Java 的 (Android) 应用程序,它要求我创建一个人可以主持的房间,然后其他用户可以加入,然后让所有用户在同时。
我的套接字服务器知识非常有限,所以我的理论是当用户决定主持一个房间时打开服务器,然后其他用户可以连接到这个服务器,然后每个连接的用户都会收到相同的信息。有人能给我指出正确的方向吗,顺便说一句,我正在 Java 中编写这个 (Android) 应用程序,我们将不胜感激。我对这一切都很陌生,所以请放纵一下。
你的问题很复杂。
如果你使用 TCP 协议,你必须使用更多的线程。
当客户端选择成为主机时,它将在 IpAddress 和端口上打开一个 ServerSocket。您可以查看 javaDoc 了解详细信息。
此时此客户端必须创建更多线程(使用 java.lang.Thread
或 java.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();
}
我希望我说的很清楚。如果您还有其他问题,请告诉我,抱歉我的英语不好