- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络课程设计报告
设计选题 ????
姓 ???名 ?????????
学 ???号 ?????????
完成时间 ????????2012-1-1
一、需求分析
聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。
主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实群聊,用户登陆,退出聊天系统等功能。
2.功能设计
(1)服务器端的主要功能如下。
在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000.
当停止服务时,断开所有用户连接。
(2)客户端的主要功能如下。
连接到已经开启聊天服务的服务端。
当服务器端开启的话,用户可以随时登录与注销。
用户可以向所有人发送消息。
3.详细设计
聊天室服务器端设计
聊天室服务器中主要的功能文件的功能如下:
MyButLis.java
主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。
public class MyButLis implements ActionListener
private MyServe server;
private JTextField filed1;
public void actionPerformed(ActionEvent e)
MyChatSet.java
服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。
public static ArrayListMyserThread servers=new ArrayListMyserThread();//线程队列
public static void addThread(MyserThread th) //增加一个服务器线程对象public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息
public static void SendOSMess(String type,String user)//其他用户上下线信息
public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息
public static void SendList//用户列表
MyCheckTool.java
保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。
//建立码表,用以保存用户信息private static MapString, MyUserInfo maps=new HashMapString, MyUserInfo();
public static boolean CheckUser(MyUserInfo user)// 验证用户名MyFrame.java
建立服务器的主界面,关联侦听器。并启动线程。
MyFrame my=new MyFrame();
my.ShowUI();// 显示UI界面public void ShowUI()
server.SetUP();
MyserThread.java
服务器线程类,定义输入输出流,发送读取信息,获取信息中相应标签的信息,用以判断用户名,密码,并可以中断连接。
this.socket=socket;
output=socket.getOutputStream();
input=socket.getInputStream();
public void SendMess(String s)//发送信息
public Strin
您可能关注的文档
最近下载
- 2025上半年四川宜宾环球集团有限公司招聘39人笔试备考题库及答案解析.docx VIP
- 素描几何体(美术专业教材基础版).pdf VIP
- 城市环境卫生设施设置标准规范.docx VIP
- 2024中国住房租赁产品力研究白皮书.pdf VIP
- DB34_T 5205-2025 癌症疼痛评估规范.docx VIP
- 2025(完整版)《医疗机构从业人员行为规范》.docx VIP
- 银屑病关节炎诊治银屑病关节炎诊断标准.ppt VIP
- 模型:年终奖和工资最优分配测算模型.xlsx VIP
- 2025-2030中国波分复用器(WDM)行业市场现状供需分析及投资评估规划分析研究报告.docx
- GB50257-2014 电气装置安装工程 爆炸和火灾危险环境电气装置施工及验收规范.docx VIP
文档评论(0)