2012-06-10 46 views
0

我目前正在用Java写一个聊天室程序。有一个服务器可以处理所有的客户端连接和一个主要的显示器,在这里所有的谈话都在发生。我想包括的一个功能是不断更新边栏中聊天室中所有用户的列表。然而,程序工作的方式是客户端用服务器打开一个字符流,数据以这种方式来回发送。如何在聊天室程序中实现不断更新的用户列表?

现在,从客户端发送到服务器的任何字符都会被转发到所有客户端并放到主显示屏上。但是,我想从服务器向客户端发送关于用户列表的信息。我如何能够区分用户列表信息和主要显示信息?

+0

也许使用协议?例如'main blabla'会发送信息'blabla'到主显示器,而'join xyz'和'part xyz'则分别表示用户加入和离开信号。 –

+0

您可以创建另一个连接来发送/接收额外的信息/命令(如更新用户列表等),或者实现自己的协议。 – HectorLector

+0

如果用户用“main”或其中一个关键字开始他们的消息,会不会是一个问题?编辑:没关系,我明白你在说什么。谢谢! – CowZow

回答

1

1-您可以有两条通信线路。一行(套接字连接)将接受用户列表的传入事件。另一行将接受用于主显示屏的信息。最好不要打开许多到服务器的连接,因为您需要在一个端口上打开更多端口或处理来自单个客户端的多个连接。

2-您可以使用控制标志或消息类型,以便区分您从服务器接收的消息类型。当它与更新用户列表有关时,您可以这样做,当它在主板上显示某些内容时,会显示它。