Chartroom开发步骤for2010(1周).doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chartroom开发步骤for2010(1周)

1 系统介绍 简易的多人聊天软件,支持任意两个客户端的私聊,所有客户之间的群聊,只需启动一个服务器端程序,允许多人上线聊天。客户端使用用户名(昵称)登录,服务器端验证此昵称当前未使用准予登陆,否则其拒绝上线。运行效果如下: (1) 在一台计算机上启动服务器端程序,如下图,下拉框中是当前所有登录的用户名。 (2)用户登录,在不同的电脑上运行客户端程序(开发时可以在同一台机器上运行) (3) 聊天界面,右下的下拉框选择聊天对象,可以是任意在线用户,也可以是所有人。 (4)服务器端的界面可以显示,用户的上线、下线情况,所有用户的聊天记录 2实现原理和消息格式 (1)登陆消息格式: 客户端发送:”login” + 用户名 服务器端发送: “success”(表示成功) “fail”(表示失败) (2) 聊天消息格式: 私聊时,客户端发送:”聊天信息”+对方用户名+信息正文 群聊时,客户端发送:”聊天信息”+“所有人“+信息正文 服务端收到后转发: 私聊,转发给指定人:”聊天信息”+ 发送方用户名 + 时间 + 信息正文 群聊,转发给在线的所有人:”聊天信息”+发送方用户名+”群发” + 时间+信息正文 (3)下线信息格式 客户端发送:“用户下线“ (4)用户列表消息(一个用户登陆成功后,服务器端向所有用户发送最目前的所有在线用户列表,有用户下线,服务器端也要向客户端发送最新的用户列表) 格式: “用户列表“ + 用户名数组 3 任务1——搭建系统界面 3.1 目标 3.1.1 服务器端窗口 运行IMServerFrame类,出现服务器端界面窗口。 3.1.2 登陆窗口和客户端聊天窗口 运行UserLogin类,输入昵称,点击“登陆“ ,直接进入客户端聊天界面。(用户名验证工作留待后面完善)。 3.2 步骤 3.2.1 创建工程,名称为chartroom代码组织 在工程目录下创建client,包中存放跟客户端聊天相关的类 创建登陆界面UserLogin在下创建登陆窗口类UserLogin,登陆界面如图所示: 3.2.4 创建客户聊天界面IMPanelClient类 在client包下窗口IMPanelClient类(JFrame),界面布局和控件名称如下: 3.2.5 在UserLogin的“登陆“按钮事件中添加代码 代码如下: dispose();// 关闭登陆对话框 IMPanelClient client = new IMPanelClient(); client.setVisible(true);//打开客户端聊天窗口 3.2.6 测试登陆功能 运行UserLogin类,输入昵称,点击“登陆”,查看客户端界面IMPanelClient是否正确显示。 3.2.7 创建服务器端界面 在server包中创建IMServerFrame 类(JFrame),如下图所示: 4 任务2——用户登陆验证和用户下线 4.1 登陆的实现思路 用户a登陆时,服务器端查询当前用户列表,如果a已经在列表中,则不允许a登陆,如果a不在列表中,允许登陆,并把a加入当前用户列表。 4.2 用户下线的思路 用户关闭客户端窗口时,向服务器端发送“用户下线”消息,服务器端将此用户名从当前用户列表中删除。 4.3 目标 (1)启动服务器端程序IMServerFrame,点击“启动服务UserLogin,输入一个用户名(首次使用),点击登陆,应允许登陆,看到聊天界面。服务器端显示***上线了,在线用户列表中应能显示此用户名。 (3) 运行登陆程序UserLogin,再输入一个当前正被使用的用户名(重复上一个用户名即可),点击登陆,应不允许登陆,提示此昵称已被使用了,请换一个。 (4)用户关闭客户端窗口,服务器端显示***下线了,在线用户列表中删除此用户名。 (5)登陆成功后,服务器界面显示用户登录信息,下拉框中显示当前所有在线用户。如图: 4.4 步骤 4.4.1 创建用户信息类SingleUserMegData 在server包下创建SingleUserMegData类,此类用来描述单个用户的信息,包括:用户名,套接字, 输入流输出流等。服务端每次接受一个用户成功登陆,便会为这个用户创建一个SingleUserMegData对象,其中存储该用户的信息。并把所有用户的SingleUserMegData对象组成一个列表,作为查询的依据。 类包括下面5个成员变量,以及它们的get和set方法,用于存取这些变量: 4.4.2 服务器端启动监听

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档