java chat将用户列表从服务器发送到客户端并更新它

时间:2014-09-06 10:17:47

标签: java serialization client-server chat jlist

我使用套接字编写客户端 - 服务器聊天。请帮助我理解如何将当前注册用户列表从服务器发送到客户端,并在列表更改时更新它。我读过this similar post但钢铁并不了解如何做到这一点。我使用 BufferedReader PrintWriter 流来发送和接收消息。我不想在客户发送消息时随时发送用户列表。

我将地图中的用户列表保留为服务器端的密钥集。

public class Server{
    private final Map<String, ServerThread> clients = Collections.synchronizedMap(new TreeMap<>());
    //.....
}

我在一个论坛上读过,如果使用序列化,那么所有可序列化的类都必须是发送方和接收方。但我不需要客户端的服务器类。

更新 如果我将使用 ObjectOutputStream / ObjectInputStream 而不是 BufferedReader PrintWriter ,以下方法是否可用于区分用户名列表中的消息?

//code on client side:
Object received = input.readObject();
if (received instanceof List) {
    List<String> users = (List) received;
    //display users in JList
} else if (received instanceof String) {
    String message = (String) received;
    //display in JTextArea
}

0 个答案:

没有答案