用JAVA实现的基于TCP协议的网络聊天室

来源 :科学与财富 | 被引量 : 0次 | 上传用户:BalloonMan_Again
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:Java是Sun公司推出的新一代面向对象的程序设计语言,由于它与生俱来的一些特性,例如: 面向对象、平台无关、 多线程、 高度安全性等等,使得它特别适合于网络应用程序的开发[1]。本文通过Java语言中的Socket编程、JDBC、多线程以及图形界面等相关技术来设计、实现了一个基于TCP协议的网络聊天室系统。
  关键词:Java;Socket编程;多线程;网络聊天室
  一、聊天室所涉及到的理论知识
  在开发聊天室系统时,考虑到界面以及功能的实现,涉及到的理论知识点如下:
  (一)图形界面
  Swing是Java为图形界面应用开发提供的一组工具包,是Java基础类的一部分。Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯Java实现,能够更好的兼容跨平台运行[2]。
  (二)Socket编程
  网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket实际上是计算机提供的一个通信端口,通常用来实现客户端和服务器端的连接。当客户端程序连接到服务器端程序时,也就建立了一个双向通信连接,客户端就可以访问服务器上的资源,同时得到相应的服务。例如网络上常用的telnet、ftp等协议都是基于Socket的服务器程序。
  (三)多线程
  一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。Java支持多线程,因此用Java编写的应用程序可以同时执行多个任务。考虑到服务器端可以同时给连接的多个客户端提供服务,需要通过多线程来实现。
  (四)JDBC
  JDBC,Java Database Connective,是连接java程序和数据库之间的桥梁。它实际上是Java语言访问数据库的一种规范,是一組标准的Java语言中的接口和类。使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。考虑到网络聊天室中聊天信息的持久保存,可通过JDBC来实现。
  二、聊天室的设计
  本文的聊天室系统采用C/S结构,C表示客户端,S表示服务器端。C/S结构是目前较为流行的网络系统开发结构,它可以充分利用两端硬件环境的优势,降低系统的通讯开销。通信时,先由客户端向服务器端发出连接请求,服务器端始终运行来提供服务。服务器启动后,就会监听网络端口,一旦监听到有客户端请求,就会启动一个服务线程来响应该客户端,为该客户端提供服务,同时继续监听服务器端口,再来一个客户端还能继续提供服务,以此类推,这样服务器端可以同时为多个客户端提供服务。
  系统在设计时分为界面设计和功能设计。界面采用图形界面,主要用到一些Swing组件并需要设计界面布局。客户端包括登录界面、主窗口界面。服务器端只有一个窗口界面。在设计功能时,客户端具有的功能包括:发送聊天信息,显示聊天记录,上传、下载文件、实时显示聊天室在线人员列表、退出聊天室等。服务器端具有的功能包括:启动服务器、接受客户端的连接、启动线程为客户端提供服务、转发信息(客户端发送的聊天信息实际上是先发给服务器,然后由服务器再转发给其他的客户端)、统计连接到服务器的客户端的个数、各自的信息,以及始终提供服务、继续接收客户端的连接、关闭服务等。本聊天室的功能模块如图1所示。
  三、聊天室的实现
  (一)服务器端的实现
  在C/S结构的网络程序中,服务器作为提供服务的进程,要始终提供服务,当它启动后就等待客户端的连接请求。通常一个服务器可以同时为多个客户端提供服务,这可以通过多线程机制来实现。这种多线程的并行通信方式,可以极大提高服务器的资源利用效率,让客户端有更好的体验。另外,客户端与服务器端的通信通过Socket来实现,Socket是网络上运行的两个程序间双向通信的一端,它既可以接收请求,也可以发送请求,利用它可以很方便地进行网络数据传输。除此之外,服务器还需要存储所有连接到它的客户端,可通过集合类来存储。这样便于统计连接的客户端的数量,同时实现消息的转发。在转发消息时,同时将消息存储到数据库中。
  (二)客户端的实现
  在C/S结构的网络程序中,客户器作为请求的发出者,当向服务器端发出连接请求时,服务器给予响应。建立连接之后,客户端就可以向服务器发送聊天消息,同时接收服务器转发的消息。由于客户端需要一直接收服务器转发的消息,需要启动一个线程来实现。客户端在上传、下载文件时,传输内容需要同发送、接收聊天消息区分开,可通过加个标识区分。在实时显示在线人员列表时,同样通过一个线程来实现。
  四、结语
  本聊天室图形界面友好,具备聊天室基本的功能,虽然与QQ等聊天软件尚有很大差距,但作为《Java高级编程应用》这门课的教学案例还是很不错的。该聊天室系统综合运用了图形界面、多线程、网络编程、JDBC等相关知识,是综合程度较高的一个案例。通过该案例的开发,让学生充分体会到所学知识的运用,进一步提高学生学习的兴趣,教学效果良好。后续还可以继续扩展该聊天室的功能,例如:实现私聊、添加头像、添加表情等。
  参考文献:
  [1]王素苹.一种基于Java Swing的网络聊天室的设计与实现.现代计算机:2012.07.
  [2] https://blog.csdn.net/xietansheng/article/details/72814531.
  作者简介:
  王海燕(1982—),硕士,山东信息职业技术学院。
其他文献
摘 要:机械制造与自动化发展,是新时期机械制造业发展的内在需求,也是深化自动化发展建设的有力保障。节能理念作为新时期的发展思想,在机械制造与自动化中的实践应用,能够更好地推进绿色节能发展,实现机械制造与自动化的创新构建。文章立足节能理念研究,分析了节能理念在机械制造与自动化中的应用问题,并在此基础之上,从优化节能发展环境、实现标准化节能生产、科学选择材料等方面,阐述了节能理念在机械制造与自动化中的
期刊
摘 要:文章论述了右江区的畜牧养殖以及畜牧技术推广站点情况,分析在畜牧科技推广中遇到的难点问题,并提出强化这项工作的有效策略。  关键词:右江区畜牧科技推广;难点;策略  1引言  畜牧养殖是我国重点的农业发展区域,在我国国民经济发展中做出很大贡献。而随着时代的发展,对于畜牧产品的需求增加,使得畜牧养殖规模逐渐扩大,畜牧养殖朝向规模化、集约化和智能化方向发展。而这个过程的实现需要畜牧科技的支持。但
期刊
摘 要:上海自贸区新片区的亮点在于跨境金融服务创新,本文所讨论的跨境收益互换是一种对外投资的新模式,可以被用于金融资产、实物资产等投资领域,满足中国居民对外投资以及全球资产配置的需求。同时,这一创新模式,将有助于进一步拓展自由贸易账户的投资、储蓄功能,提高使用自由贸易账户的积极性,突出新片区本外币资金的集聚性,助力上海国际金融中心建设和人民币国际化发展。  关键词:上海自贸区新片区;跨境金融;创新
期刊
摘 要:电力调控运行系统的安全运行能促进整个电力系统的正常运行,关系到整个电力系统实现资源利用最优化、电力企业的社会及经济效益最大化、电力企业的高质量社会服务以及人民正常用电和用电安全。本文将对电力调控运行系统的现存问题进行分析,从而浅谈电力调控运行系统的安全运行。  关键词:电力调度;调控;安全运行;体系  引言  由于人民生活水平的不断提高,也使得对电力的需求不断提高,这无疑给了电力系统新的挑
期刊
摘 要:结合当前的电气自动化控制技术发展情况,从自身的电气自动化控制方面的工作经验出发,在分析了PLC控制系统的核心技术的基础上,多角度探讨了PLC技术在电气工程自动化控制中的应用问题,希望对于今后提升电气自动化控制技术水平有所帮助。  关键词:PLC控制;电气工程;自动化控制;PLC技术  1引言  随着我国工业化大生产的快速发展, 电气自动化控制技术对于工业生产发展具有至关重要的作用,也体现出
期刊
摘 要:探地雷达技术属于雷达技术与地质科学技术相融合的地球物理探测技术。拥有非常高的探测效率,且操作较为简单,具备无损失探测,精度非常高,是运用高频电磁波反射来探测地下目标的高分辨率电磁方法。文章主要分析了岩土工程检测中对探地雷达技术的应用,旨在为工作人员提供参考。  关键词:岩石工程; 探地雷达技术; 应用分析;  自上世纪60年代中期,美国研究人员便开始研究地雷达技术,将其运用到矿业,确定各个
期刊
摘 要:在2020年新型冠状病毒的蔓延形势下,全国各级公共图书馆纷纷采取了一定的战“疫”措施,部分公共馆在线下闭馆的同时积极在线上展开了一系列的读者服务。本文以新冠肺炎下各馆的应急反应为研究对象,总结其在应急机制、馆舍布局、数字资源、线上服务、“疫”后管理等方面存在的问题,提出健全应急管理体系、加大资源整合、加深参考咨询、丰富线上服务功能、建立服务品牌、畅通行业内外沟通等措施,希望以此能够推动公共
期刊
摘 要:借助对测量数字化技术的深入研究与论证,矿山测量的数字化技术应用可以有效的提升矿山测量工作的准确性,从而有效规避工作中的失误风险。按照矿山测量工作中所存在的各种典型问题,可以结合工作实践,有效的提升矿山测量的工作效率与整体策略。对此,本文简要分析提高矿山测量工作效率方法,希望可以为相关工作者提供理论帮助。  关键词:矿山测量;工作效率;提高方法  0.引言  矿山测量工作属于安全生产的基础上
期刊
摘 要:现如今,社会经济发展迅速,建筑工程建设数量不断增多,同时人们对于建筑工程施工质量的要求也逐渐提升。在很多建筑工程施工中,对于外墙防渗施工的要求比较高,但是有些建筑工程外墙防渗施工技术选用不当,施工工序控制不严格,导致外墙结构出现渗漏问题。因此,对建筑工程外墙防渗漏施工进行深入研究意义重大。  关键词:建筑工程;外墙防渗漏施工;影响因素;要点;质量控制  1 建筑工程外墙防渗漏施工概述  在
期刊
摘 要:伴随着社会经济与科技的持续发展,各行各业管理能力的不停提升,有关部门早已慢慢强化了对食品药品的监督管理工作。在国内,食品药品的监督管理任务的重点是安全工作。近些年以来,源源不断的问题减少了食品药品监督管理工作的品质与效果,笔者将主要探究食品药品监督管理工作中出现的各种问题,并阐述一定的对策,希望可以为大家提供一定的帮助和参考。  关键词:食品药品;监管工作;问题及对策  食品药品和大家实际
期刊