《计算机网络通信》课程设计报告(2)
网络系统集成课程结业论文(报告)
显示在界面上。如下图
1.5用户下线和通知
用户下线与用户登录一样,要涉及到客户端请求下线和服务器响应请求两个过程
用户单击客户端“下线”按钮,客户端就会向服务器发送下线请求,服务器接收后就胡释放与该用户的相关资源,并向其他用户发送该用户下线通知以及更新在线用户列表,如下图
- 3 -
网络系统集成课程结业论文(报告)
1.6 服务关闭
当服务器关闭服务时,就向所有在线用户发送服务器关闭信息,并且关闭所有与在线用户相连接的输入输出流和套接字,将且将界面调整到最初状态,如图()
客服端接收到服务器的关闭信息时,它将在界面上显示服务器关闭的提示信息,并且关闭与服务相连的输入输出流和套接字,删除在线用户列表,将界面调整到最初状
态,
2.
代码实现
2.1 用户信息链表的实现
用户信息链表类(UserInfoList)需要对实现对用户信息的添加、删除和查询功能。在实现UserInfoList类之前,先定义一个用于描述单个用户信息的数据结构Node类,并定义五个数据成员:用户昵称、套接字、输入流、输出流和Next指针。
public class Node {
String username=null;//用户昵称 Socket socket=null;// 套接字
ObjectOutputStream output=null;//输出流 ObjectInputStream input=null;//输入流
Node next=null;//保存链表中下一个节点的指针 }
在UserInfoList
的构造函数中,对UserInfoList的成员变量进行初始化
public UserInfoList() {root=new Node();
root.next=null;//创建链表的节点 pointer=null; count=0;}
为UserInfoList类添加成员函数add完成用户信息节点的添加功能。 public void add(Node n){
- 4 -
网络系统集成课程结业论文(报告)
pointer=root;//将游标指向根节点
pointer=pointer.next;}//将游标后移 pointer.next=n;//加入节点 n.next=null;
count++;}//计数器加一
while(pointer.next!=null){//判断是否链表尾部
为UserInfoList类添加成员函数del,完成用户信息节点的删除功能。
public void del(Node n){
pointer=root;//将游标指向根节点
while (pointer.next!=null){// 判断是否链表尾部
if (pointer.next==n){//判断当前节点是否为要删除节点
pointer.next=n.next;//删除节点 count--;//计数器减一 break;}
pointer=pointer.next;}}//将游标指向下一节点
为UserInfoList类添加成员函数getCount,提供返回链表中元素个数的功能:
public int getCount()
{
return count;//返回当前链表中元素的个数 }
为UserInfoList类添加成员函数find,完成在用户信息链表中查找指定元素的功能,为方便起见,定义两个find函数,入口参数分别为String和int。
public Node find(String username)
{ }
public Node find(int index) {
if (count==0) { }
if (index<0) {
return null; return null;
if (count==0)return null; pointer=root;
while (pointer.next!=null) { }
return null;
pointer=pointer.next;
if (pointer.username.equalsIgnoreCase(username)) { }
return pointer;
- 5 -
网络系统集成课程结业论文(报告)
}
}
}
pointer=root; int i=0;
while (i if (pointer.next!=null) { } else { } i++; return null; pointer=pointer.next; return pointer; 2.2 服务器主框类架的实现 服务器主框类架类需要实现人机交互功能、启动服务功能 关闭服务功能和发送系统信息功能。需要为工程添加服务器主框类,名命为ServerFrame,在ServerFrame类的构造函数中,完成为服务器控件的添加、控件位置的调整、控件的初始状态的设定及控件事件侦听函数的添加。添加函数init,在其中完成界面的初始化功能,在init函数中,除对事件进行添加和调整外,还对控件添加事件侦听器。如为关闭服务按钮添加侦听器: jbStopServer.addActionListener( ); { } public void actionPerformed(ActionEvent e) { } stopServer(); new ActionListener() 在ServerFrame中添加starrServer函数完成启动服务的功能,添加stopServer函数完成关闭服务的功能,添加sendStopToAll函数依次向所有在线用户发送服务器关闭消息,添加sendSystemMessage函数实现发送系统消息的功能,添加sendMsgToAll函数完成向所有在线用户发送系统消息的功能。 2.3服务器侦听线程类的实现
…… 此处隐藏:659字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




