一 需求分析

  • 采用C/S模式,基于TCP协议编程的方式,使得各个用户通过服务器转发实现聊天的功能

  • 分为三大模块:客户端模块、服务器端模块和公共辅助类模块

  • 客户端模块的主要功能:

    • 登陆功能:用户可以注册,然后选择服务器登入聊天室

    • 显示用户:将在线用户显示在列表中

    • 接收信息:能接收其他用户发出的信息

    • 发送信息:能发出用户要发出的信息

  • 服务器端模块的主要功能:

    • 检验登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。就允许用户登陆

    • 显示在线状态:将该用户的状态发给各在线用户

    • 转发聊天信息:将消息转发给所有在线的用户

  • 公共辅助类模块的主要功能:

    • 定义完整的消息传递机制

    • 对消息转发的方式进行有效约束

    • 规定消息类型

二 程序设计

2.1 程序设计思想

实现网络聊天室编程,关键在于Socket通信,程序的功能都是在Socket的基础上一层一层增加的。

实现Socket通信的基本方法为以下4个步骤:

  • 客户端与服务器端分别实例化ServerSockot/Socket

  • 打开连接到Socket的面向对象输入输出流

  • 利用输入输出流按照TCP协议对Socket进行读写操作

  • 关闭输入输出流和Socket

我们要实现的功能都是在第3步对Socket的输入输出流做相应的操作:

涉及到多客户端并发访问,必须用线程进行控制,不同的处理线程为不同的客户服务,主线程只负责循环等待,处理线程负责网络连接,接受客户输入的信息,根据消息类型对消息转发。

点击此处下载文档和源码

基于java语言的C/S模式网络聊天室软件相关推荐

  1. [源码和文档分享]基于java语言的C/S模式网络聊天室软件

    一 需求分析 采用C/S模式,基于TCP协议编程的方式,使得各个用户通过服务器转发实现聊天的功能 分为三大模块:客户端模块.服务器端模块和公共辅助类模块 客户端模块的主要功能: 登陆功能:用户可以注册 ...

  2. linux点对点聊天室的实现与设计心得,基于Socket接口的Linux与Windows网络聊天室设计与实现...

    陈洁 孟晓景 摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序.先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信.整个系 ...

  3. java通讯录备份_基于Java语言的C/S模式通讯录备份和查询软件

    一 需求分析 本设计要求完成一个基于C/S模式的通讯录备份软件,采用C/S架构,具有易用.美观的图形界面. 1.1 服务器端功能要求 能够验证客户身份,接收客户端的备份通讯录的请求,能够实时备份和更新 ...

  4. [源码和文档分享]基于Java语言的C/S模式通讯录备份和查询软件

    一 需求分析 本设计要求完成一个基于C/S模式的通讯录备份软件,采用C/S架构,具有易用.美观的图形界面. 1.1 服务器端功能要求 能够验证客户身份,接收客户端的备份通讯录的请求,能够实时备份和更新 ...

  5. 用java编写一个聊天程序_基于JAVA实现的一个简单的网络聊天程序

    一.Java Socket的概述 1.Socket套接字方便了开发网络应用程序.TCP面向连接的可靠传输协议.具有数据确认和数据重传机制.保证了发送数据一定能到达通信的对方.UPD协议无连接,不可靠的 ...

  6. Java NIO示例:多人网络聊天室

    一个多客户端聊天室,支持多客户端聊天,有如下功能: 功能1: 客户端通过Java NIO连接到服务端,支持多客户端的连接 功能2:客户端初次连接时,服务端提示输入昵称,如果昵称已经有人使用,提示重新输 ...

  7. Java NIO示例:多人网络聊天室完整代码

    服务端:  package cn.zhangxueliang.herostory.chatroom;import java.io.IOException; import java.net.InetSo ...

  8. 网络聊天室(Java)

    摘要 本文阐述了基于Linux环境,Java语言实现的基本聊天室功能,涉及Linux下的Java 语言的Socket编程.以及Java语言的多线程编程. 关键字 Linux         Java  ...

  9. Java基于局域网(LAN)的聊天室软件-内附源码

    程序简介 一款基于Java的局域网下实时通信软件(聊天室).界面使用swing. 功能描述 提供"聊天主题"进入相应聊天室. ​ 用户登录时输入任意主题名称即可进入对应主题. 提供 ...

  10. java 解析数据包_一种基于Java语言的网络通讯数据包解析方法与流程

    本发明涉及网络通讯领域,特别涉及一种基于Java语言的网络通讯数据包解析方法. 背景技术: 计算机系统和网络的大量普及使用使全球跨入了信息化时代.但是,正由于现代社会中几乎一切都在"计算机化 ...

最新文章

  1. 使用NetworkX绘制深度神经网络结构图(Python)
  2. oracle外键死锁,Oracle技术之和外键相关的阻塞和死锁问题总结(二)
  3. 未清采购订单关闭最全的方法
  4. 交换第六天——HSRP、VRRP、GLBP、SPAN
  5. 程序员偷偷深爱的 9 个不良编程习惯
  6. 耗时3年,集齐102位中国摄影师,央视这部纪录片BBC也无法超越......
  7. 《 图解 HTTP 》读书笔记
  8. java gui 打开另一个,java – 从另一个JFrame Gui访问vars
  9. 计算机二级c语言考点变化,计算机二级C语言考点归纳汇总.doc
  10. LOJ2424「NOIP2015」子串
  11. 小程序图片上传formdata boundary + base64
  12. 电子商务网站设计与实现
  13. 软件测试-面试题(基础+性能)
  14. 转换加密的WMV文件让所其它播放器可以放
  15. MER 音乐情感识别-论文笔记7
  16. 波卡平行链生态一览|Polkadot Decoded 回顾
  17. MAC M1/M2安装ADOBE等第三方软件问题终极解决 “开启任何来源”“无法检查更新,请确认您已接入互联网”“移除下载镜像的Quarantine属性” “闪退”【MACBOOK】
  18. m对比PSO,WPA,GWPA以及GWO四种优化算法的优化性能,优化目标函数为10个来自CEC2017的标准测试函数
  19. 串口触摸屏的使用(与单片机通信,电阻屏)
  20. 大数据实验一 关联规则实验题目:蔬菜价格相关性分析

热门文章

  1. 学计算机加数模社团,优秀社团 | 数学建模协会
  2. dcdc模块降额设计_大功率IGBT模块及驱动技术
  3. ssm小型超市管理系统的设计与实现毕业设计源码011136
  4. STM32使用485接口通讯
  5. JMeter中BeanShell的使用方法和常用语法
  6. 西门子PLC,STEP7 v5.5安装以及仿真软件Plcsim v5.4 sp5安装
  7. 【总结】学了不少自然语言处理的理论知识,如何通过实战进一步提高能力?...
  8. 原子结构示意图全部_原子结构示意图规则
  9. C语言程序设计赵山林高媛,C语言程序设计(工业和信息化普通高等教育“十二五”规划教材立项项目)(赵山林高媛)资料.doc...
  10. 基于树莓派的DLNA和Airplay无线音频传输