基于java语言的C/S模式网络聊天室软件
一 需求分析
采用C/S模式,基于TCP协议编程的方式,使得各个用户通过服务器转发实现聊天的功能
分为三大模块:客户端模块、服务器端模块和公共辅助类模块
客户端模块的主要功能:
登陆功能:用户可以注册,然后选择服务器登入聊天室
显示用户:将在线用户显示在列表中
接收信息:能接收其他用户发出的信息
发送信息:能发出用户要发出的信息
服务器端模块的主要功能:
检验登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。就允许用户登陆
显示在线状态:将该用户的状态发给各在线用户
转发聊天信息:将消息转发给所有在线的用户
公共辅助类模块的主要功能:
定义完整的消息传递机制
对消息转发的方式进行有效约束
规定消息类型
二 程序设计
2.1 程序设计思想
实现网络聊天室编程,关键在于Socket通信,程序的功能都是在Socket的基础上一层一层增加的。
实现Socket通信的基本方法为以下4个步骤:
客户端与服务器端分别实例化ServerSockot/Socket
打开连接到Socket的面向对象输入输出流
利用输入输出流按照TCP协议对Socket进行读写操作
关闭输入输出流和Socket
我们要实现的功能都是在第3步对Socket的输入输出流做相应的操作:
涉及到多客户端并发访问,必须用线程进行控制,不同的处理线程为不同的客户服务,主线程只负责循环等待,处理线程负责网络连接,接受客户输入的信息,根据消息类型对消息转发。
点击此处下载文档和源码
基于java语言的C/S模式网络聊天室软件相关推荐
- [源码和文档分享]基于java语言的C/S模式网络聊天室软件
一 需求分析 采用C/S模式,基于TCP协议编程的方式,使得各个用户通过服务器转发实现聊天的功能 分为三大模块:客户端模块.服务器端模块和公共辅助类模块 客户端模块的主要功能: 登陆功能:用户可以注册 ...
- linux点对点聊天室的实现与设计心得,基于Socket接口的Linux与Windows网络聊天室设计与实现...
陈洁 孟晓景 摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序.先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信.整个系 ...
- java通讯录备份_基于Java语言的C/S模式通讯录备份和查询软件
一 需求分析 本设计要求完成一个基于C/S模式的通讯录备份软件,采用C/S架构,具有易用.美观的图形界面. 1.1 服务器端功能要求 能够验证客户身份,接收客户端的备份通讯录的请求,能够实时备份和更新 ...
- [源码和文档分享]基于Java语言的C/S模式通讯录备份和查询软件
一 需求分析 本设计要求完成一个基于C/S模式的通讯录备份软件,采用C/S架构,具有易用.美观的图形界面. 1.1 服务器端功能要求 能够验证客户身份,接收客户端的备份通讯录的请求,能够实时备份和更新 ...
- 用java编写一个聊天程序_基于JAVA实现的一个简单的网络聊天程序
一.Java Socket的概述 1.Socket套接字方便了开发网络应用程序.TCP面向连接的可靠传输协议.具有数据确认和数据重传机制.保证了发送数据一定能到达通信的对方.UPD协议无连接,不可靠的 ...
- Java NIO示例:多人网络聊天室
一个多客户端聊天室,支持多客户端聊天,有如下功能: 功能1: 客户端通过Java NIO连接到服务端,支持多客户端的连接 功能2:客户端初次连接时,服务端提示输入昵称,如果昵称已经有人使用,提示重新输 ...
- Java NIO示例:多人网络聊天室完整代码
服务端: package cn.zhangxueliang.herostory.chatroom;import java.io.IOException; import java.net.InetSo ...
- 网络聊天室(Java)
摘要 本文阐述了基于Linux环境,Java语言实现的基本聊天室功能,涉及Linux下的Java 语言的Socket编程.以及Java语言的多线程编程. 关键字 Linux Java ...
- Java基于局域网(LAN)的聊天室软件-内附源码
程序简介 一款基于Java的局域网下实时通信软件(聊天室).界面使用swing. 功能描述 提供"聊天主题"进入相应聊天室. 用户登录时输入任意主题名称即可进入对应主题. 提供 ...
- java 解析数据包_一种基于Java语言的网络通讯数据包解析方法与流程
本发明涉及网络通讯领域,特别涉及一种基于Java语言的网络通讯数据包解析方法. 背景技术: 计算机系统和网络的大量普及使用使全球跨入了信息化时代.但是,正由于现代社会中几乎一切都在"计算机化 ...
最新文章
- 使用NetworkX绘制深度神经网络结构图(Python)
- oracle外键死锁,Oracle技术之和外键相关的阻塞和死锁问题总结(二)
- 未清采购订单关闭最全的方法
- 交换第六天——HSRP、VRRP、GLBP、SPAN
- 程序员偷偷深爱的 9 个不良编程习惯
- 耗时3年,集齐102位中国摄影师,央视这部纪录片BBC也无法超越......
- 《 图解 HTTP 》读书笔记
- java gui 打开另一个,java – 从另一个JFrame Gui访问vars
- 计算机二级c语言考点变化,计算机二级C语言考点归纳汇总.doc
- LOJ2424「NOIP2015」子串
- 小程序图片上传formdata boundary + base64
- 电子商务网站设计与实现
- 软件测试-面试题(基础+性能)
- 转换加密的WMV文件让所其它播放器可以放
- MER 音乐情感识别-论文笔记7
- 波卡平行链生态一览|Polkadot Decoded 回顾
- MAC M1/M2安装ADOBE等第三方软件问题终极解决 “开启任何来源”“无法检查更新,请确认您已接入互联网”“移除下载镜像的Quarantine属性” “闪退”【MACBOOK】
- m对比PSO,WPA,GWPA以及GWO四种优化算法的优化性能,优化目标函数为10个来自CEC2017的标准测试函数
- 串口触摸屏的使用(与单片机通信,电阻屏)
- 大数据实验一 关联规则实验题目:蔬菜价格相关性分析
热门文章
- 学计算机加数模社团,优秀社团 | 数学建模协会
- dcdc模块降额设计_大功率IGBT模块及驱动技术
- ssm小型超市管理系统的设计与实现毕业设计源码011136
- STM32使用485接口通讯
- JMeter中BeanShell的使用方法和常用语法
- 西门子PLC,STEP7 v5.5安装以及仿真软件Plcsim v5.4 sp5安装
- 【总结】学了不少自然语言处理的理论知识,如何通过实战进一步提高能力?...
- 原子结构示意图全部_原子结构示意图规则
- C语言程序设计赵山林高媛,C语言程序设计(工业和信息化普通高等教育“十二五”规划教材立项项目)(赵山林高媛)资料.doc...
- 基于树莓派的DLNA和Airplay无线音频传输