Java (Server)Socket 多机房

Java (Server)Socket multi room

我正在尝试找到一种创建多房间套接字的方法。因此用户可以在不同的房间聊天或与其他用户私下聊天。有没有办法用 java.net.Socket and/or java.net.ServerSocket?

最好的方法是什么?我需要为每个房间和私人聊天打开一个新端口吗?

我可以通过我的 IDE 看到有一个 Socket getChannel(),但是找不到任何相关信息。 可能我看错词了。

我希望有人能帮助我:)

是的,有办法做到这一点。您需要为连接到您的服务器的每个用户创建一个新线程并将用户名和套接字存储在 map 中,然后如果有人不想向特定用户发送消息,您只需从映射并向该用户发送消息。

为所有用户实现线程的最简单方法如下

ServerSocket serverSocket = new ServerSocket(6666);
        while (true){
            new User(serverSocket.accept()).start();
        }

然后你只需要 ovveride 运行() 方法来监控用户是否向我们的服务器发送任何消息并将其传递给用户 在消息中指定。