版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE6JAVA程序设计课程设计报告课题:UDP聊天程序姓名:学号:同组姓名:专业班级:指导教师:设计时间:评阅意见:评阅意见:评定成绩:指导老师签名:年月日目录1、系统描述………..12、分析与设计……23、系统测试………..34、心得体会………55、参考文献……..66、附录………………..6系统描述聊天室程序功能简述:聊天室程序分为服务器端,和客户端。服务器程序作为一个中转站,所有客户端都只与服务器进行通信。服务器和客户端都显示在线的用户列表,用户可以向所有用户发表消息。网上聊天系统是为人们进行交流和联系提供的一个平台。利用现代的网络资源优势和技术优势,通过提供完善的网上聊天系统的管理,以达到增进人们与人们之间的信息交流和沟通的目的,并以此加快人们的信息化建设。当今社会,计算机网络已经成为人们生活中不可缺少的一部分。人们从互连网上获取信息与朋友交流,网络应用越来越广泛,而网站如雨后春笋般地一个接着一个冒出来,而提供静态信息的HTML网页并没有办法达到与用户交互的目的,来产生更进一步的网站功能,才出现了各种交互式网页技术。
如今随着信息交流的增大,社会信息化加剧,世界在强大信息流基础上也变得越来越小,各种聊天工具层出不穷。21世纪有了这些聊天工具大大增广了人们的交流范围,信息交流也不再受地理的限制。本此课程设计也是利用网络聊天程序的基本设计思想,并按照网络通信的协议设计出来的一个基于UDP的网络聊天程序。我们觉得随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。两台计算机之间进行即时通讯、发送文件等交流方式已经成为时代的潮流。因此出现了QQ等聊天工具。然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于作为即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,并且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。二、分析与设计本次计算机网络课程设计的任务是设计一个简单的网络聊天程序。根据课程设计要求程序采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。重点学习流式套接字对象的使用,处理网络事件的方法。聊天室程序功能简述:聊天室程序分为服务器端,和客户端。服务器程序作为一个中转站,所有客户端都只与服务器进行通信。客户端程序以用户名登录。服务器和客户端都显示在线的用户列表,用户可以向所有用户发表消息。在可行性分析阶段已经粗略的研究了该项目的需求,并分析了开发平台及软件的可行性,但为了准确的确定目标系统必须做什么,了解用户的明确需求,在相关部门进行了详细的调研,进一步明确了作者所实现子系统的功能。可以说网上聊天系统是为人们进行交流和联系提供的一个平台。利用现代的网络资源优势和技术优势,通过提供完善的网上聊天系统的管理,以达到增进人们与人们之间的信息交流和沟通的目的,并以此加快人们的信息化建设。前台聊天室页面:为用户提供聊天场所,可对网站风格、广告链接等进行设置;用户可以根据个人习惯选择字体、文字颜色和表情等;具有私聊功能,私聊内容仅私聊双方可见。客户端处理部分:获取界面元素;得到聊天内容;与服务器交互;更新客户端页面;响应用户事件。服务器端响应部分:提供聊天室界面元素信息;获得提交数据;数据合法性验证;聊天内容入库;返回聊天内容。系统测试我们的程序运行结果如下的2个截图所示:图1可以在发言的地方输入你要说的话,对方的ip地址则是输入你所要通信对方的ip地址。输入了ip地址和发言的内容后点击发送,你的发言信息就会发送给你的目的方。发言的运行结果如图2所示图2四、心得体会本次计算机网络课程设计让我对计算机网络协议有了更深入的了解,以前只是知道UDP及TCP等协议,但是不知道能够具体的用来编写小软件,这也是在计算机网络学习过程中打下的基础,有了计算机网络基础知识,让我在具体实践过程中更加顺利。借助本次实验自己再一次的对JAVA语言中的控件有了更深的理解,并能够灵活运用,其中的一些参数虽然一时记不清楚,但是在课后翻阅资料的过程中很快就会运用了。能够顺利的独立完成本次实验,也是对我前一段时间学习JAVA的一个考验,我也已经掌握了基本的JAVA编程思想及常见控件的使用方法。这也培养了我的自学能力,及时遇到了比较棘手的技术问题,我相信自己也能够通过查阅资料,一步一步完善自己在JAVA编程上的不足。虽然本程序有很多需要改进的地方,但这只是我的第一版聊天程序,我会在接下来的时间里编写出更多的,功能更大的聊天程序。通过编写中小型的软件程序,让我一步一步的对软件设计有了比较全面的认识。课程设计的过程是艰辛的,但是收获却是很大的,这次课程设计我主要是应用JAVA语言完成了这个简单的聊天程序,虽然程序简单,但是我们的付出却是艰辛的。首先,综合课程设计让我把JAVA得到巩固和进一步的提高知识,对自己现有的知识有了更进一步的理解和认识,再次,我在课程设计中遇到过很多问题,通过问老师和查资料,通过自己钻研,特别是得到了刘老师的谆谆教导,李老师给了很大的帮助,不仅给了我思路上的开阔,还让我认识到了自己对以前所学知识的不足方面。随着社会发展,INTERNET的迅速普及,以及飞速发展,人们对实时通信的要求越来越迫切,需求日益增加,网络聊天已经成为了一大时尚,不少人都有这样的经历,用户数据协议时一个无连接协议,使用这种协议时,并不需要在两台计算机之间建立固定的链接。所以他的优势很明显。是现代通信不可或缺的一部分。这次的课程设计我主要应用所学,通过在JAVA编程环境下,运用面向对象程序设计的知识,进行基于UDP的网上聊天的设计,它易于实现两台计算机之间建立固定的链接,这是它的一大优势。当然,通过这次课程设计,我也发现了自身的很多不足点,在以后的学习中,我会不断地完善自我,不断进取,能使自己在JAVA语言编程这方面有一个好的发展。五、参考文献【1】举一反三JAVA程序设计实战训练,老虎工作室张伟编著,人民邮电出版社,2004年10月。【2】JAVA语言程序设计(第二版),李尊朝苏军编著,中国铁道出版社,2010年1月。六、附录importjava.awt.*;importjava.awt.event.*;import.*;publicclassU_ChatextendsFrameimplementsRunnable{LabelL1,L2;TextFieldtxt1,txt2;ButtonB1;Listlist1;publicU_Chat(){this.setLayout(null);L1=newLabel("对方的IP地址:");L1.setBounds(10,30,60,30);this.add(L1);L2=newLabel("发言:");L2.setBounds(10,70,60,30);this.add(L2);txt1=newTextField("",20);txt1.setBounds(75,30,200,30);this.add(txt1);txt2=newTextField();txt2.setBounds(75,70,320,30);this.add(txt2);B1=newButton("发送");B1.setBounds(400,70,60,30);B1.addMouseListener(newmyMouseListener());this.add(B1);list1=newList(15);list1.add("聊天记录:\n");list1.setBounds(15,110,450,300);this.add(list1);this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});this.setTitle("基于UDP的Java聊天程序");this.setBounds(200,200,480,430);this.setVisible(true);}publicvoidrun(){//TODOAuto-generatedmethodstubwhile(true){byte[]buf=newbyte[600];try{DatagramSocketds=newDatagramSocket(2222);DatagramPacketdp=newDatagramPacket(buf,buf.length);ds.receive(dp);list1.add("\n"+"来自"+dp.getAddress().getHostAddress()+":"+dp.getPort()+">"+newString(buf).trim());ds.close();Thread.sleep(100);}catch(UnknownHostExceptionex){ex.printStackTrace();}catch(Exceptionex){ex.printStackTrace();}}}classmyMouseListenerextendsMouseAdapter{publicvoidmouseClicked(MouseEvente){Stringmsg=txt2.getText().trim();Stringipstr=txt1.getText().trim();try{DatagramSocketds2=newDatagramSocket();DatagramPacketdp2=newDatagramPacket(msg.getBytes(),msg.getBytes().length,InetAddress.getByName(ipstr),2222);ds2.send(dp2);list1.add("已发送:"+msg.trim());ds2.close();}catch(UnknownHostExceptionex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论