武汉理工大学计算机网络课程论文题目基于C/S模式的简单聊天程序作者学院信息工程学院专业电子信息工程学号指导教师二〇一六年四月十三日武汉理工大学信息工程学院课程论文诚信声明本人声明:所呈交的课程论文,是本人在指导老师的指导下,独立开展工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本课程论文不含任何其他个人或集体已经发表或创作过的作品成果。对本文工作做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本科课程论文作者签名:二○一六年四月十三日课程论文成绩评定表质量评价指标(在相应栏目打√)评价项目论文与设计评价质量按对应项目打分工作量和态度(10分)分析问题能力(10分)解决问题能力(10分)内容完整层次分明(10分)设计、实验正确性(10分)书写规范(10分)流程图或拓扑图(10分)论证充分(10分)测试结果情况(10分)总体评价(10分)评定成绩(100分制)指导教师签名年月日目录一、选题背景.............................................................1二、设计理念.............................................................22.1流程图............................................................................................................................22.2系统结构图....................................................................................................................22.3设计理念........................................................................................................................3三、过程论述.............................................................3四、结果分析.............................................................44.1服务端界面....................................................................................................................44.2客户端界面....................................................................................................................44.2.1账号、密码核实....................................................................................................44.2.2群聊........................................................................................................................54.2.3私聊........................................................................................................................54.3结果分析........................................................................................................................6五、结论(或总结).......................................................6六、参考文献.............................................................7附件一:程序源代码.......................................................8武汉理工大学《计算机网络》课程设计1一、选题背景随着互联网的快速发展,网络聊天已经成为人们日常交流沟通的不可或缺的方式,受到人们的青睐。同时,国内外也出现了很多不错的聊天工具,比如QQ,Skype等等,本系统将使用Java语言并基于C/S模式行开发。通过使用Socket实现网上聊天功能。用户可以通过客户端连接到服务器端并进行网上聊天。聊天时可以启动多个客户端。服务器端启动后,接收客户端发来的用户名和密码验证信息。验证通过则以当前的聊天客户列表信息进行响应;此后接收客户端发来的聊天信息,转发给客户端指定的聊天客户(即私聊)或所有其他客户端;在客户断开连接后公告其退出聊天系统的信息。客户端启动后在GUI界面接收用户输入的服务器端信息、账号和密码等验证客户的身份。验证通过则显示当前系统在线客户列表。客户可以与指定对象进行私聊,也可以向系统中所有在线客户发送信息。本系统采用Eclipse为基本开发环境并使用Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行的系统。武汉理工大学《计算机网络》课程设计2二、设计理念2.1流程图NNYY2.2系统结构图数据交互客户端登陆账号、密码是否正确聊天方式选择群聊私聊服务端开启发送对应聊天方式的数据给服务端口等待数据分析数据群发私聊群发在线的所有客户端发送数据给特定对象客户端A客户端D客户端C客户端B客户端F客户端E服务器端武汉理工大学《计算机网络》课程设计32.3设计理念基于C/S的简单聊天室可以实现用户与服务器间,服务器与多个用户之间的通信。因此本方案采用所有用户连接于服务器一端的方式进行数据的传输。并且服务器端对数据处理可知晓是群发数据还是私聊数据并完成不同的操作以达到设计要求。本方案将以寝室六人为基础构建一个寝室聊天室为例完成此课题的设计。聊天室程序通常需要具备以下功能:(1)登陆聊天室;(2)启动服务器;(3)关闭服务器;(4)用户之间的聊天;(5)退出聊天室三、过程论述(1)构建聊天室管理员界面,即系统的服务器端,开启并管理服务器。(2)构建用户登陆界面和聊天大厅界面,登陆以及接发信息。(3)构建登陆机制,用户端需要在登陆界面中输入正确的用户名及其密码后才可以与服务器之间收发信息。(4)代码实现管理员进行管理界面后可以方便的启动/停止服务器,以及知晓用户的在线/下线情况。(5)代码实现客户端进行群发/私聊机制,并将对应的数据发给服务器端。(6)完善代码,提升聊天室系统的稳定性,完全性。(7)测试系统。武汉理工大学《计算机网络》课程设计4四、结果分析4.1服务端界面4.2客户端界面4.2.1账号、密码核实武汉理工大学《计算机网络》课程设计54.2.2群聊4.2.3私聊武汉理工大学《计算机网络》课程设计64.3结果分析此次基于C/S模式的聊天室设计可以实现服务端的开启关闭、客户登陆、以及信息的群发或者私聊功能,并且还有每条信息的接发所对应的时间,方便核实数据,而且界面操作简单,便于使用者使用。本设计采用环回IP127.0.0.1进行测试,效果基本达到要求,因此,此次设计还是十分成功的。唯一美中不足就是界面做的不是特别漂亮,还有待改善。五、结论(或总结)十来天的课程设计结束了,我收获颇丰。通过此次课程,我对Java语言以及网络通信有了更进一步的了解,有效的提高了我对数据的认识和理解,切实的提高了我的编程能力。计算机网络课程设计是对我们学到的东西进行一个综合的应用。在构思整个系统的过程中,系统的框架以及代码的结构占了很大一部分的时间。要想写好代码,必须细致的了解每一个类的功能,还必须熟练掌握它。在此次课程设计中,我用到了很多的单个知识点,并把它们综合起来运用在代码中。虽然计算机网络课程仅有六周的课程,但是依然能学到很多东西。虽然设计这个基于C/S通信的聊天室过程中还是遇到了不好麻烦,但这确实是一个锻炼自己能力的好机会。在本次的课程设计中也发现了自己的很多不足,对于一些细节性的问题老是出错。当我们把我们的理论知识运用到实际过程中还是比较困难的。课程设计虽然是个实践,但给我们对知识的运用,利用都有很大的发挥。我也在此设计中查阅了大量的资料,并分析大牛们写的代码,自己加以学习。一个程序的完成需要不断地修改才能得到完善。只有不断扩充知识,不断实践,才能完善各种设计,才能完善自己。武汉理工大学《计算机网络》课程设计7六、参考文献[1].谢希仁等.计算机网络(第六版)[M].北京:人民邮电工业出版社,2015.;[2].陈国海.我国高校"学生评教"研究综述[J].高等教育研究学报,2001,24(1):30-32.[3].刘海杰.Java编程设计[M].中国铁道出版社,2006.;[4].孙卫琴.Java网络编程精解[M].电子工业出版社,30-32.武汉理工大学《计算机网络》课程设计8附件一:程序源代码服务端代码:packageserver;importjava.awt.*;importjava.io.*;importjava.net.*;importjava.util.*;importjava.awt.event.*;importjavax.swing.*;publicclassServerextendsJFrame{JTextAreatextShow;JButtonstart;Vectorsocketsss=newVector();//这里用到了变长对象数组,用来存储来自客户端的socket对象ServerSocketserver=null;Socketclients;publicServer(){//服务器的构造函数,并且初始化init();setVisible(true);setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);setBounds(450,150,340,455);setTitle(电信1303程全的聊天室服务器);setResizable(false);}voidinit(){//设置布局和事件监视器setLayout(newFlowLayout());getContentPane().setBackground(newColor(20,85,237));textShow=newJTextArea(21,29);textShow.setBackground(newColor(45,210,209));start=newJButton(启动服务器);start.setBackground(newColor(236,134,21));武汉理工大学《计算机网络》课程设计9add(start);add(newJScrollPane(textShow));textShow.setEditable(false);start.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){//在这里启动监听的线程Listenlisten=newListen();Threadgo=newThread(li