我在Java中做了一个简单的chatserver ...我想知道将用户名添加到聊天时需要输入的用户名。而且,我不明白如何将私人消息仅发送给收件人
如果目的地未登录到聊天服务器,则错误消息应发送给发件人
服务器发送给客户端的每条消息都必须带有原始发件人的名称以及该消息的发送时间。
Java代码---> https://dijaspora24.info/?page_id=4123
答案 0 :(得分:0)
我将不展示实现,因为这是一个要解决的大问题。但是,我将给出一个实现方法的想法。
我假设您知道如何将客户端连接到服务器(例如,通过使用ServerSocket和Socket)。
首先,要添加已连接客户端的用户名,服务器仅需强制客户端在连接到服务器时首先向服务器输入字符串。
第二,创建一个存储所有客户端的Map,其中key是输入的用户名,value是套接字。
第三,当一个客户端想要向另一个客户端发送消息时,必须使用某种格式来发送服务器可以理解的字符串。将字符串发送到另一个客户端时,接收客户端的用户名必须在字符串内。服务器接收到字符串时,它将提取接收客户端的用户名的用户名,并通过其键在Map中找到该客户端。如前所述,Map元素的值是您要发送到的客户端的套接字实例。
要使所有这些成为可能,必须为每个客户端使用一个线程,以侦听每个客户端的输入。