24小时论文定制热线

咨询电话

ASP.NETVC++MySQLPHP安卓JSPLinuxJava机械VBASP单片机模具汽车工程毕业设计Flash
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

基于Java Socket的网络聊天平台构建

添加时间:2018/06/28
基于Java Socket实现的聊天系统由客户端和服务器端组成, 需要使用的机构首先在内部网络服务器上安装配置系统服务器端, 机构人员的个人PC上安装客户端, 像普通聊天工具一样, 首次使用需要先注册用户, 然后登录使用, 在内部局域网上进行信息交流。
  以下为本篇论文正文:

  摘要:开发的网络聊天系统是基于开放的Java应用程序设计的, 能动态、实时地完成信息的传递, 且具有高效的交互性, 能更有效地处理客户请求, 易于维护和更新。系统采用客户机/服务器的架构模式, 客户端通过Socket发送信息给服务器, 从而实现多点对多点的聊天。系统界面采用Java中的Swing技术来实现。

  关键词:Java; Socket; 交互性; 多线程;

  Abstract:The development of the internet chat system is based on the open Java application, it can deliver information dynamically and in real time. With efficient interactivity, it can handle customer requests more efficiently and is easy to maintain and update. The system adopts the client/server architecture model, the client send information to server through Socket, so as to realize the multipoint to multipoint chat. The system interface is realized by using Swing technology in Java.

  Keyword:Java; Socket; interactivity; multithreading;

  目前已有的网络聊天工具非常多, 它们一般要求用户必须连接互联网才能够进行通信。有很多公司, 出于保密考虑不让员工连入互联网, 所以通常的聊天工具都将无法使用。这是就需要开发一款能够在公司局域网中使用的聊天系统, 实现公司内部员工的通讯和交流。

  本文基于Java Socket实现的聊天系统由客户端和服务器端组成, 需要使用的机构首先在内部网络服务器上安装配置系统服务器端, 机构人员的个人PC上安装客户端, 像普通聊天工具一样, 首次使用需要先注册用户, 然后登录使用, 在内部局域网上进行信息交流。

  1、需求分析

  进行系统设计的首要工作是详细了解客户对产品的需求。对于客户端程序, 需要注重用户的使用体验, 主要包括: (1) 人性化的界面设计, 要求所见即所得, 能够很快上手使用。 (2) 程序运行的稳定性, 要求占用资源较少, 不影响其他正常工作程序的运行。 (3) 对错误操作的有效处理, 要求当用户错误使用时给出反馈信息和处理方式, 不影响主程序运行, 另外, 应用程序在运行中都有出错的可能性, 在设计时要考虑保障机制排除错误。对于服务器端程序需要更高的要求: (1) 运行效率高, 即时响应客户端请求。 (2) 更重要的一点是, 服务器端同时连接了多个客户端, 需要具备同时处理多个客户端任务请求的能力, 也就是同时处理多个Socket连接。目前常见的服务器有两种模型, 循环服务器模型和并发服务器模型, 其中, 循环服务器模型的工作方式是每次响应一个客户端的请求, 处理后返回客户端, 再响应下一个客户端请求, 占用系统资源较少。并发服务器的工作方式是可以同时响应多个客户端连接请求, 为每一个请求创建子线程, 多线程并发工作。本文采用并发服务器方式设计系统。

  在客户端中能够实现与聊天室成员一起聊天, 而且还需要能私聊, 同时能够改变聊天内容的风格。在服务器端, 能够将用户注册信息、服务器日志、用户聊天信息等存储到数据库中。此外服务器还能监控聊天内容, 过滤非法信息, 并能够发送通知, 强制踢用户下线。

  2、系统实现原理

  当用户需要发送信息时, 客户端将用户的一系列聊天相关信息进行封装, 然后向服务器发出连接请求, 建立Socket连接, 将聊天信息对象的Socket输出流利用对象输出流的方式向服务器发送过去。服务器收到后将聊天信息对象进行强制转换, 以Chat对象的形式添加到创建的聊天对象集Message中, 从而让所有在线聊天用户访问使用。

  服务器使用多线程技术响应用户发送聊天信息的请求, 为了及时获取最新消息, 客户端需要频繁连接服务器。考虑到服务器的通信负担问题, 但又要尽量保证时效性, 系统设置客户端连接服务器间隔时间为3秒, 这样基本可以保证及时接收最新消息。

  当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。

  系统采用C/S架构设计, 如图1所示。C/S架构具有结构灵活, 通用性强, 便于操作等优点, 在各类系统中应用极为广泛, 相关技术也非常成熟, 本聊天系统在局域网中部署使用, C/S结构是不二的选择, 而且在技术上完全可行。

图1 C/S架构示意图
图1 C/S架构示意图

  3、系统设计

  3.1、系统架构设计

  通过对本系统的需求分析和系统实现原理, 做出了系统设计图, 如图2所示。

图2 系统方案设计图
图2 系统方案设计图

  3.2、客户端与服务器通信

  如图3所示是服务器端和客户端创建及连接流程图, 建立连接的方式是通过TCP/IP协议。

图3 客户端和服务器创建流程图
图3 客户端和服务器创建流程图

  TCP协议是一种可靠的, 面向连接的传输层协议。建立一个TCP连接需要进行三次握手。首先, 客户端向服务器发送SYN (SEQ=N) 报文并等待服务器确认, 当前客户端状态为SYN_SEND。服务器如果接收到客户端发送的SYN报文, 确认客户端请求连接, 需要向客户端发送一个SYN (SEQ=M) 报文, 并且同时向客户端发送一个确认报文ACK (ACK=N+1) , 此时服务端进入SYN_RCVD状态。客户端收到服务端ACK报文后, 首先检验ACK报文是否为N+1, 然后再向服务端发送确认报文ACK (ACK=M+1) , 服务端检查ACK报文通过后, 连接成功, 服务器和客户端进入ESTABLISHED状态, 三次握手完成, 准备传输数据。

  在Java的基于TCP/IP协议的Socket编程中, 服务端使用Server Socket类创建, 而客户端使用的Socket类。

  3.3、客户端与客户端通信

  客户端通信过程如图4所示。

图4 通信示意图
图4 通信示意图

  由通信示意图可见, 客户端之间无法直接进行连接, 数据的传输都需要借助服务器完成, 这样做的目的一方面是便于实现, 另一方面是保证数据都是通过服务器处理的, 可以对不安全数据进行过滤, 保证系统和数据安全。

  3.4、系统的架构模式

  为了降低系统的通信开销, 提高运行效率, 在服务器端配置了数据库服务器和应用服务器, 相当于三层结构, 应用服务器主要用于处理多个客户端请求, 数据库服务器主要用于存储管理大量数据, 这样分解了服务器的访问压力, 减轻拥堵情况, 避免用户访问量大造成服务器卡死。架构示意图如图5所示。

图5 架构示意图
图5 架构示意图

  3.5、系统的功能模块设计

  系统分为服务器端和客户端两部分, 服务器端主要完成建立连接、操作数据库、监听客户端等功能, 客户端主要完成用户注册、用户登录、查看好友、发送信息等功能。具体功能模块如图6所示。

图6 系统的功能模块图
图6 系统的功能模块图

  3.6、数据库的设计

  访问数据库是一个重要的环节, 也是比较程式化的部分。本系统采用SQL server数据库。它主要包含两个表, 一个是用户信息表, 另一个是登陆信息表。分别见表1和表2。

表1 用户信息表 (yonghu)
表1 用户信息表 (yonghu)

表2 登陆信息表 (logs)
表2 登陆信息表 (logs)

  4、结束语

  本系统是基于开放的Java应用程序设计的, 能动态、实时地完成信息的传递, 且具有高效的交互性, 能更有效地处理客户请求, 易于维护和更新。使用Java提供的Socket类以及Java的多线程功能, 在不同的端口上部署各类服务, 可以在单个程序中同时运行多个不同进程, 而客户端通过Socket发送信息给服务器, 从而实现多点对多点的聊天。

  参考文献
  [1]李淑梅, 王志彬.Socket在局域网聊天系统中的应用[J].吉林师范大学学报 (自然科学版) , 2014 (1) :71-73.
  [2]许文勇.基于Socket的网络编程技术及其实现[J].无线互联科技, 2014 (5) :17.
  [3]程咏喜, 蒋珉.基于TCP/IP协议的Win Sock网络编程及应用[J].计算机时代, 2012, 06 (07) :12-14.
  [4]任小强, 陈金鹰, 李文彬, 等.网络通信之Java Socket多线程通信[J].信息通信, 2015 (6) :206-207.
  [5]刘永华, 于春华.实用Java网络编程技术[M].北京:中国电力出版社, 2009.
  [6]李树青.Java通用范例开发金典[M].北京:电子工业出版社, 2009.
  [7]杨延双, 张建标, 王全民.TCP/IP协议分析及应用[M].北京:机械工业出版社, 2007.
  [8]吴亚峰, 索伊娜.30天学通Java Web项目案例开发[M].北京:电子工业出版社, 2009.

    相关内容
    好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。
    所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
    如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!