如yahoo messenger这样的典型聊天应用如何实现与不同用户的聊天?

时间:2014-08-25 14:38:03

标签: java sockets chat

我在java中使用socket编程来构建聊天应用程序的资源。在每个实现中,人们都试图创建一个在无限循环中运行的服务器,接受来自客户端的连接并创建一个单独的线程来处理聊天。 我想创建一个聊天应用程序,当有人想和我聊天时(在客户端),会弹出一个新的对话框/聊天窗口。但问题是,我只有一个插座,我通过它连接到服务器。所有的消息都必须通过这些流发送,目前我正在考虑将输出引导到不同的客户端窗口的一些特殊方法,但我确信必须有一些优雅的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

如果要为每个客户端使用单个套接字连接,则所有通信都应该通过该连接进行多路复用,这意味着您需要在服务器和客户端之间的套接字流之上开发协议。协议是一组规则。例如,客户端可以发出命令,服务器响应它们,例如一个命令,一个响应。命令和响应需要以某种方式相互标记和分隔,也许您想要添加标识符和消息的长度,然后引用该消息。

各种系统使用不同的协议。