- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实 训 报 告
(2010/2011 学年第 一 学期)
课程名称: Java综合实训
班级学号: 41042X34
姓 名: 周云山
指导教师: 刘新娥
日 期: 2011-9-16
南京信息職業技術學院
实训报告要求
1 实训目的
以Java程序设计语言为基础,以Eclipse为开发平台,通过完成简易聊天程序的编写,调试,运行工作,进一步掌握Java应用程序的开发方法和编程技巧,巩固理论知识。
2 实训内容
系统的模块划分和各模块的功能介绍。
系统是两部分组成:客服端与服务器
客户端中由三个类组成:
UserLogin类中有主函数功能:用户登录界面;
IMPanelClient类功能:显示聊天窗口;
ClientReceiveThread类功能:用于聊天窗口下拉框的在线人员的添加;
(二)服务器端中由五个类组成:
IMServerFrame类:服务器启动,创建空的在线用户列表,创建服务器端ServerSocket,绑定6544端口,启动监听线ServerListenThread。
DBCThread类功能:验证用户名和密码;
ServerListenThread类功能:
1、在在线用户列表中查找该用户名
2、如果用户名不在列表中,向该客户端发送消息”success”,否则向客户端发送消息”fail”;
ServerReceiveThread类功能:
1 . 监听端口,如果有用户发来连接请求立刻接受。
2 . 接收客户传来的消息,判断该消息是不是“login”
3 . 如果是“login”,表示该用户想登陆,接续接收用户传来的消息,即 “用户名”
4. 创建用户名验证线程JDBCThread,该线程用来验证用户名是否已被使用。
e. SingleUserMegData类的功能为:
此类用来描述单个用户的信息,包括:用户名,套接字, 输入流输出流等。服务端每次接受一个用户成功登陆,便会为这个用户创建一个SingleUserMegData对象,其中存储该用户的信息。并把所有用户的SingleUserMegData对象组成一个列表,作为查询的依据。
3 详细设计与实现
3.1 服务器启动的实现
服务器的启动:
服务器启动,创建空的在线用户列表,创建服务器端ServerSocket,绑定6544端口,启动监听线ServerListenThread监听端口。
erverListenThread监听启动:
监听端口,如果有用户发来连接请求立刻接受。
接收客户传来的消息,判断该消息是不是“login”
如果是“login”,表示该用户想登陆,接续接收用户传来的消息,即 “昵称”
启动用户名验证线程JDBCThread,该线程用来验证用户名是否已被使用。
线程JDBCThread启动
1、从在线用户列表中查找该用户输入的昵称
2、如果用户名不在列表中,向该客户端发送消息”success”,否则向客户端发送消息”fail”
客户端下线处理:服务器端监听下线实现
JDBCThread类:在向用户发送允许登陆的success消息后,启动ServerReceiveThread线程,该线程用与服务器端与某一客户端收发消息(包括聊天消息,下线消息)
启动ServerReceiveThread线程中的 megManage()方法
如果收到了消息
2、 if(消息为“用户下线”),表示当前是用户下线消息,从在线用户列表中删除此用户。
If(消息为“聊天消息”),,表示当前是用户发来的聊天信息,将此聊天信息转发给指定人(后续完成)。
服务器端的流程图1
调用startSwever()方法
调用ServerListenThread类
启动验证线程JDBCThread
3.2 用户远程登录的实现
客户端登录界面
点击登录按钮:先向服务器端发送“用户名”,等待服务器的验证结果,验证通过就打开客户端聊天窗口,否则提示错误。
登陆成功后,服务器界面显示用户登录信息,下拉框中显示当前所有在线用户。如图:
服务器端:启动监听线ServerListenThread,功能
1. 监听端口,如果有用户发来连接请求立刻接
文档评论(0)