2013-04-22 188 views
-1

您好我正在寻找使用套接字构建聊天应用程序的指导,该套接字允许客户为其他客户端创建空间以加入和聊天。我已经构建了一个聊天应用程序,它可以工作,客户可以加入,但客户端在一个房间内,不能移动到其他房间。我创建了一个类似的应用程序,使用rmi的多个房间用户可以为其他客户端添加聊天室。这一次我想练习使用套接字。任何帮助或指导,让我开始将是非常感谢你。Java套接字聊天应用程序

+2

我们不会让你开始,这不是本网站的目的(通过搜索问题,并使用谷歌)。但是,如果您遇到问题,我们将帮助解决问题。 – 2013-04-22 19:49:31

+0

对不起。我不是要求密码。我想我需要重新写我的意思。我创建了一个接受多个客户端的多聊天应用程序,但我不想让服务器如何让客户端创建客房。现在,我的所有套接字聊天应用程序都只是将任何客户端添加到服务器ArrayList中,并在消息到达时更新所有客户端。我想我的问题是,如果客户想要创建或加入房间,服务器将不会如何? – user629283 2013-04-22 19:57:27

+0

定义并实现您自己的协议。 – 2013-04-22 20:03:09

回答

2

至于我可以工作了,你通过简单的IO插槽想

  • 连接,也许每一个插座读线程阻塞NIO。
    • 我建议你有一个包装每个套接字的处理程序类。
  • 使用基于文本的协议。
    • 您需要一个命令来添加到房间,删除房间,获取当前房间列表以及发送消息。
  • 允许单个客户认购/听/一次
    • 这意味着你需要一套处理程序在每个房间出现在多个房间。
  • 您希望处理缓慢的消费者并正常断开连接。
+0

第一点:我不太确定你的意思是对不起,但这听起来对我很好。 第二点:我正在考虑这个,但无法弄清楚我该怎么做。我会尝试和现在一起玩。 第三点:是的,这是正确的。 第四点:这就是我想要做的正确的:)。 5:我明白了什么意思。 – user629283 2013-04-22 20:05:20

+0

我不知道你不知道什么。 ;)如果你喜欢,可以问我一个问题。 – 2013-04-22 20:06:52

+0

对不起,我按下输入得太早 – user629283 2013-04-22 20:09:39

0

要实现通信层,您应该查看nettyapache mina。两者都满足您对客户端和服务器端的需求。我猜他们已经有了一个聊天协议示例。

+0

谢谢,我会仔细阅读,但我只是想使用套接字和服务器套接字。不管怎样,谢谢你。 – user629283 2013-04-22 20:03:17

+0

这两个框架都使用nio-sockets并提供对低层次内容的弃权,以便可以专注于协议。 – Chriss 2013-04-22 20:13:15