- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 2
聊天室设计说明书
(该案例仅作参考,勿作它用)
目录
开发环境………………………………………………………………………1
使用说明………………………………………………………………………1
程序功能………………………………………………………………………2
程序结构、流程说明…………………………………………………………2
类、方法、属性说明…………………………………………………………4
其它要说明的问题……………………………………………………………8
一、开发环境
Windows 操作系统,Java编程:j2sdk1,5,0 ,Jcreator
二、使用说明
服务器和客户端的界面分别为如下图:
在Jcreator环境下,编译成功后,先运行服务器端程序chatServer,等待客户的请求,在客户端打开客户程序所在HTML网页,或直接在DOS环境下运行命令如下:
[盘符]:xxx\...\java chatServer(Enter)
然后在其它主机上运行客户端(为了保证正常运行,使用appletviewer)DOS下命令如下:
[盘符]:xxx\...\appletviewer chatApplet.html(Enter)
在文本行中输入用户名,按按钮“连接”后,等待服务验证名称的有效性后,便会同服务器建立连接,然后就可同其他在线用户进行聊天。
三、程序功能
该聊天室实现了基本的聊天功能,界面友好,容易操作。
整个程序分为客户端和服务器两部分:
客户端:chatApplet.java 采用Applet形式,完成客户端的所有工作。
服务器端:chatServer.java和一个用于显示该软件基本信息的对话框:AboutBox。
该聊天室详细功能说明:
当用户同服务器建立连接后,会在在线用户列表中显示:“**上线”,等待两秒钟后,刷新所有在线用户列表,这时就可以同所有用户聊天,即你所发送的信息所有在线用户均可见到。
本聊天室提供了悄悄话模式,即可同某一用户进行点对点的进行聊天,你所发送的信息只有选中的用户才可见。此时在线用户列表中该用户名会被选中。当然在进入悄悄话模式前,会通过服务器向对方发送请求报文,经对方同意后,才建立点对点连接,若对方拒绝,则此次连接失败,但无论对方同意与否,都会有一个消息框反馈对方的决定。
无论何时均可退出悄悄话模式,或与另一用户建立悄悄话模式,但一次只能与一个用户进行点对点聊天。
若想退出悄悄话模式,只需在用户列表中,点击对方用户名,经确认后即可断开;若想退出聊天室,只需按“退出”按钮。此时将清空所有文本行、文本框、列表框的内容,用户可再次通过连接进入聊天室。
用户还可选择字体、字体大小、颜色等。
在服务器端,会显示所有用户建立连接和断开连接的记录,并可向所有在线用户发送系统消息。
四、程序结构、流程说明
客户端的主要功能是监听并接收来自服务端的报文,该流程如下图。如图所示,客户端在收到来自服务端转发来的报文后,根据读出的报文头的不同格式作出不同的操作处理。其中REQCON、REQEXIT、RESPOND是悄悄话建立、撤消以及应答报文(功能同服务端),它们在客户端触发消息框弹出,让用户选择;SERQUIT表示服务器终止运行,强行终止所有连接;QUIT是通告有用户退出,触发客户端用户列表的更新;CONNECT是通告有用户上线,触发客户端用户列表的更新;SYSMSG是系统消息,在客户端触发消息框弹出;MSG是服务端转发来的聊天信息,显示在当前文本区和聊天记录文本区中;PEOPLE是定时更新用户列表报文,客户端用户列表的更新。
在chatServer类的main函数中,服务器端循环调用Serversocket.accept()方法,等候客户端请求,接收到客户端请求后,创建socket对象与客户端建立连接,然后/定义并实例化一个Client线程类,将连接客户的socket信息存储进listdata数组中,这样一个Client就对应一个客户连接,这样服务器端就可根据Client.name来区别不同的用户所发送的信息。
不同的客户端进行通信,实际上都是经过服务器的转发来实现。如下图:
服务端的主要功能是监听客户发送来的请求,服务端使用2525端口,客户端使用系统分配的端口。INFO表示该客户是第一次连接,则把他的信息存放进服务端的用户列表中(数据结构采用用向量数组和枚举型);QUIT某个客户退出连接,则把他的对应信息从列表中删除,并告知其他在线用户;MSG是向所有用户广播;MSGSEC是悄悄话模式,将向特定的信息重新封装到一个新的MSG报文中,在转发给该用户;REQCON是向特定用户发起悄悄话模式建立的请求;REQEXIT是向正在用悄悄话模式的对方发起撤消悄悄话模式的请求;RE
文档评论(0)