欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年网络接口编程-Java聊天程序设计归类 .pdf

    • 资源ID:27966754       资源大小:371.56KB        全文页数:16页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年网络接口编程-Java聊天程序设计归类 .pdf

    指导老师评阅成绩表学习与工作态度( 30% )选题的价值与意义( 10% )文献综述 (10% )研究水平与设计能力( 20% )课程设计说明说(论文)撰写质量(20% )学术水平与创新( 10% )总分指导老师签名:年月日课程设计答辩记录及评价表学生讲述情况教师主要提问记录学生回答问题情况答辩评分评分项目分值评价参考标准评分总分优良中及格差选题的价值与意义10 9 8 7 6 4 文献综述10 9 8 7 6 4 研究水平与设计能力20 19 17 15 13 10 课程设计说明书(论文)撰写质量20 19 17 15 13 10 学术水平与创新10 9 8 7 6 4 答辩效果30 28 25 22 19 15 是否同意论文(设计)通过答辩同意不同意答辩小组成员签名答辩小组组长签名:年月日课程设计成绩评定表成绩汇总评分项目评分比例分数课程设计总分指导老师评分50% 答辩小组评分50% 课程设计成绩评价表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 成都信息工程学 院课程设计题目:网络聊天程序设计与实现作者姓名:班级:学号:指导教师:日期:年月日作者签名:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 网络聊天程序设计与实现摘要这次课程设计我选择了做一个聊天程序,虽然很多同学是和我一样选了同一个题目,也许功能叶相差无几,但这不是最重要的。腾讯QQ 、MSN-Messager已经成为我们日常生活中和亲朋好友经常联系的很好的工具,作为计算机专业的学生,我认为对这些身边的实用软件我们应该有更深刻的认识,理解他是如何工作的,知道各种功能又是如何实现的,所以我选择了这个题目。设计中我运用了网络编程的基本理论知识, 如客户端 / 服务器端模式(Client/Server模式) 、网络编程的设计方法等。在网络编程中通过Socket 套接字建立连接,服务器能读取、转发客户端发来信息,并能刷新用户列表。对信息的读取、发送,是利用流来实现信息的交换,能实现汉字的读取与显示,在服务器端显示其地址和ip 号,在线人数,当前状态和客户连接与断开信息等。同时,借鉴QQ ,我也在用户名后面实时显示系统时间,同时通过方法实现用户断开连接,刷新用户列表,显示聊天内容等等。和其他同学相比,我的这个程序还有很多可以扩展的功能,比如踢人,私聊等,由于时间紧迫未能实现,所以只是完成了基本功能。本程序采用 myEclipse 为基本开发环境和java 语言进行编写,能实现多个客户之间同时进行聊天。关键词:局域网 聊天 socket java myEclipse 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - 目 录1引言 . 11.1课题背景 . 11.2功能要求 . 11.3运行环境 . 11.4功能实现 . 12JAVA 介绍 . 12.1JAVA 语言背景 . 12.2JAVA语言特点 . 22.1.1平台无关性. 22.1.2安全性 . 22.1.3面向对象 . 22.1.4分布式 . 22.1.5健壮性 . 22.1.6Java与 C/C+ 语言 . 33总体设计思路. 33.1程序设计过程 . 33.2功能模块的流程图 . 53.2.1服务器端 . 52.1.1客户端 . 63.3遇到的麻烦和解决方法. 64重要源代码摘录. 74.1图形界面实现 . 74.2重要方法的代码 . 75运行结果与测试. 105.1服务器端初始界面 . 105.2客户端初始界面 . 105.3服务器端运行结果 . 115.4客户端运行结果 . 11结论 . 12参考文献 . 12名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 第 1 页 共 16 页1引言1.1课题背景在网络越来越发达的今天, 人们对网络的依赖越来越多, 越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、网络聊天时一类的聊天系统的发展日新月异, 因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。本课程适用于信息安全等本科专业。参加本课程设计的学生, 应当认真完成本课程设计的全部过程。 并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。1.2功能要求系统的详细设计和程序的算法分析系统的硬件配置清单用户使用说明书源程序代码清单测试数据和测试过程记录遇到的问题及解决方法分析1.3运行环境本程序基于 java 和 myeclipse Java Enterprise开发环境,可以在一般的装有windows 系统的主机上运行。1.4功能实现系统结构采用C/S 结构采用套接字实现网络中的数据传输尽量使用某个或某些应用层的协议实现系统的部分功能系统设计规范合理,操作流程方便简单2JAVA介绍2.1 Java 语言背景Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。在 Java出现以前, Internet上的信息内容都是一些乏味死板的HTML 文档。这对于那些迷恋于WEB 浏览的人们来说简直不可容忍。 他们迫切希望能在 WEB中看到一些交互式的内容,开发人员也极希望能够在WEB 上创建一类无需考虑名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 第 2 页 共 16 页软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN 的工程师敏锐地察觉到了这一点,从 1994 年起,他们开始将 OAK 技术应用于 WEB 上,并且开发出了 HotJava的第一个版本。当 SUN 公司 1995年正式以 Java这个名字推出的时候,几乎所有的 WEB 开发人员都想到: 噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。2.2 Java语言特点2.1.1平台无关性平台无关性是指 Java能运行于不同的平台。 Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关, Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。2.1.2安全性Java的编程类似 C+,学习过 C+的读者将很快掌握Java的精髓。 Java舍弃了 C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器, 防止程序的非法访问。2.1.3面向对象Java吸取了 C+面向对象的概念, 将数据封装于类中, 利用类的优点, 实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性, 使程序代码只需一次编译, 然后通过上述特性反复利用。 程序员只需把主要精力用在类和接口的设计和应用上。 Java提供了众多的一般对象的类, 通过继承即可使用父类的方法。在Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形, 根类为 Object 类,Object 类功能强大, 经常会使用到它及其它派生的子类。2.1.4分布式Java建立在扩展 TCP/IP 网络平台上。库函数提供了用HTTP 和 FTP 协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。2.1.5健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。 Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java 应用程序的周期。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 第 3 页 共 16 页2.1.6Java与 C/C+ 语言Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。 C+安全性不好,但C 和 C+被大家接受,所以Java设计成 C+形式,让大家很容易学习。 Java 去掉了 C+语言中的指针运算、结构、typedefs、#define、需要释放内存等功能,减少了平常出错的50%,让 Java的语言功能很精炼。而且,因为 Java很小,所以整个解释器只需215K 的 RAM ,并增加了一些很有用的功能,如自动收集碎片。 Java实现了 C+的基本面象对象技术并有一些增强, (为了语言简单,删除了一些功能) 。Java处理数据方式和用对象接口处理对象数据方式一样。Java与 C 和 C+直接相关 .Java继承了 C 的语法,Java 的对象模型是从C+改编而来的 .现代程序设计始于C,而后过渡到 C+,现在则是 JAVA.通过大量的继承,JAVA 提供了一个强大的 ,可以更好地利用已有成果的,逻辑一致的程序设计环境,并且增加了在线环境需求的新功能.或许最重要的一点在于,由于它们的相似性,C,C+和 JAVA 为专业程序员定义了一个统一的概念架构.程序员从其中的一种语言转到另一种语言时,不会遇到太大的困难 . 3总体设计思路3.1程序设计过程由网络编程可知, 我们要分别建立一个服务器端和客服端,并且通过多线程实现多用户同时聊天。我是先向别人学习了一下, 基本了解了需要做的工作, 一些同学做的聊天程序课程设计功能强大,界面友好,我也从他们那里学到了很多。第一步,借鉴别人的界面,我在草稿上画了一个服务器界面,将各个组件标上,便于写程序时使用,如下图1:第二步,大致描绘一个客服端界面,布局好各个组件,不得不说,还可以添加更多模块实现更多的功能,草图如下图2:第三步,开始写界面的代码,通过浏览器查看applet 界面,不断修改到自认为可以为止;第四步,建立客户端线程类,构造监听类的构造器,建立线程运行方法,读取服务器端传来的各种信息,如聊天信息,服务器关闭等;第五步,实现客户端线程类,监听服务器传来的信息,存储客户的信息,接受并读取客户发送到服务器的信息,输出到客户端显示;第六步,实现线程运行方法, 读取客户端发来的数据流, 如退出,建立连接,聊天内容等;第七步,实现各个方法,如向客户端发送消息的方法、监听连接信息,刷新名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 第 4 页 共 16 页客户端用户列表方法、 向每个连接的客户端发送信息的方法、关闭所有连接的方法、断开单个客户的方法等;草图:图一:服务器端草图图二: 客服端草图菜单menu 用户连接于断开信息显示jList1 jLabel1 jLabel2 jLabel4 jLabel3 提示信息backinfo Panel1 Label1 name_txt button1 button2 Panel2 Lanel2 Chat_txt 显示聊天信息Panel3 Label3 List1 在线用户列表Label4 msg_txt button3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 第 5 页 共 16 页3.2功能模块的流程图3.2.1服务器端运行 chatserver.java 程序 生成界面启动服务器设计服务器界面使用端口初始化服务器套接字将客户 socket 信息写入list 框启动线程,用notifyRoom() 监听聊天室刷新客户端信息检查当前用户连接数clients.size()50 是处理产生的错误异常否实例化一个client 线程类一个对应一个客户连接是否退出?关闭服务器是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 第 6 页 共 16 页2.1.1客户端3.3遇到的麻烦和解决方法开始的时候遇到的最大的麻烦就是不能读入和输出汉字,产生了乱码和问号;另外有时会出现用户列表无法更新、服务器端无法显示客户连接和断开信息,系统动态时间无法获取等等。对于汉字问题我的解决办法是另外选择了一种读入数据流方法,使用BufferRead(), 用 readLine()读取;关于系统的时间我是通过在网上找的一种方法实现的,将其输出到客服端显示;有时是关联问题, 以及输出显示格式, 获取信息一些细节步骤如果出错就会设计客户端界面并初始化运行chatapplet.java 连接服务器生成界面用 户 是 否 请求连接是将客户端线程实例化启动线程监听服务器传来的信息请求断开连接否是运行 disconnect()方法是定义并实例化一个字符缓冲存储信息用打印流发送信息线程处理服务器传来的信息发送聊天消息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 第 7 页 共 16 页产生意想不到的错误,无法解决,还越改越乱。 所以要养成多多的注释和一步一步的修改,避免不可恢复,造成重大的损失。4重要源代码摘录4.1图形界面实现JPanel Panel;/Pane是 JPanel类的对象 (实例) JMenuBar jMenuBar1 = new JMenuBar(); JMenu jMenuFile = new JMenu(); JMenuItem jMenuFileExit = new JMenuItem(); JMenu jMenuHelp = new JMenu(); JMenuItem jMenuHelpAbout = new JMenuItem(); JLabel statusBar = new JLabel(); BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanel1 = new JPanel(); BorderLayout borderLayout2 = new BorderLayout(); JLabel back = new JLabel(); JPanel jPanel2 = new JPanel(new GridLayout(10, 1); JLabel jLabel1 = new JLabel(); TextField status = new TextField(10); JLabel jLabel2 = new JLabel(); TextField maxnumber = new TextField(10); JLabel jLabel3 = new JLabel(); TextField count = new TextField(15); JLabel jLabel4 = new JLabel(); TextField address = new TextField(15); JLabel jLabel5 = new JLabel(); TextField ip = new TextField(15); static java.awt.List jList1 = new java.awt.List(20); JscrollPane scrollpane=newJScrollPane(jList1,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER ); 4.2重要方法的代码实现 sendclients方法用来向每个连接的客户端发送信息;publicstaticsynchronizedvoid sendClients(StringBuffer msg) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - - - 第 8 页 共 16 页for( int i=0;i0) Client c=(Client)clients.firstElement(); tryc.socket.close(); catch(IOException e) System.out .println(Error:+e); finally clients.removeElement(c); 断开单个客户的方法,向其他在线客户发送断开连接信息,synchronized是 java中用来维护数据的一致性, 通过 synchronized机制给共享资源上锁, 使所有访问有序进行。public static synchronized void disconnect(Client c) try jList1.addItem(c.ip+ 离开); c.send(new StringBuffer(QUIT); c.socket.close(); catch(IOException e) System.out.println(Error:+e); finally 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 16 页 - - - - - - - - - 第 9 页 共 16 页 clients.removeElement(c); notifyRoom()用来监视连接信息,不断刷新clients 数组并刷新客户端用户列表信息;public static void notifyRoom() StringBuffer people=new StringBuffer(PEOPLE); for(int i=0;iclients.size();i+) Client c=(Client)clients.elementAt(i); people.append(:+c.name); sendClients(people); 动态获取本机系统的时间,在用户名之后显示;public String getStringDate() Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); String dateString = formatter.format(currentTime); return dateString; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - 第 10 页 共 16 页5运行结果与测试5.1服务器端初始界面5.2客户端初始界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - 第 11 页 共 16 页5.3 服务器端运行结果5.4客户端运行结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 第 12 页 共 16 页结论这次设计经过长期的不懈努力,程序基本满足聊天的需要。 完成后的程序实现了多用户在线聊天、单用户退出、显示在线用户列表、统计在线人数、显示用户主机 IP、显示用户主机物理地址等功能。程序设计期间,通过到图书馆查阅书籍,借阅Java 语言开发教程和网上搜索相关解答等多种方式学习到很多课堂上没有的知识,还积累了一定的实践经验,增强了动手能力和解决实际问题的能力。在此之前,对于Java 编程技术或网络 socket编程知识都只是略知皮毛, 缺乏深入的认识, 对其工作方式和原理缺乏透彻的认识。在这段时间里,我认真学习了Java 语言开发, Applet 小程序实现,对编程思想有了进一步的体会, 养成了一些良好的编程习惯。 程序虽然完成,但是距离优秀仍存在一定差距,用 JAVA 开发大型项目还有很多我需要去努力学习的知识。希望自己能不断学习和实践,争取以后做得更好。限于我的知识水平和经验有限,此程序还有许多有待完善和改正的地方,恳请老师批评指正。参考文献1 李金铭林晓宁宁正元编著面向对象程序设计JAVA 清华大学出版社2005 2 吕凤翥马皓编著Java语言程序设计清华大学出版社2006。3 王克宏Java 技术及其应用高等教育出版社1999。4 林建铭精通 Java2 科学出版社2001。5 Schildt H Java 2 参考大全张玉清译清华大学出版社2002。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -

    注意事项

    本文(2022年网络接口编程-Java聊天程序设计归类 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开