网络聊天的架构

网络聊天的基本功能和流程

1,多人进行网络聊天

,v1.0最核心的聊天,代码最基础

客户端直接的交流交互

由于客户端不能直接进行交流,所以要借助服务器

具体的功能

分为服务器端和客户端

服务器端

1,驱动服务器,服务器进行循环监听

2,服务器接受多个客户端Socrekt对象进行存储。运用集合

3,在服务器端,每个socekt都要监听各自的客户端发送的消息

4,一旦某一个客户端发送了消息,那么服务器就通过其他的socklet发送给其他的客户端。

客户端:

1,只要用户名不为空,创建Socrect

2,打开聊天窗口

3,输入内容,点击发送消息。

4,在客户端接听服务器端发送回来的消息,并进行显示。

(其中的特殊关系难以厘清,要仔细思考)

基本流程的图鉴:

其中的客户端,要创建两个界面一个是登录界面,一个是聊天界面

图鉴:

(其中代码最为关键的,也是功能主要的就是服务器监听到多个客户端的连接时,要注意,每个客户端的socker在服务器要一直持续监听客户端的发送过来的消息,这就要创建线程用来--**同时--**监听每个socker的发送的消息,,,,,服务器向客户端发送公告也需要在客户端一直监听)

代码展示:代码有点多,,,

客户端登录界面:

复制代码
k客户端:聊天窗口:

客户端运行:服务器端:

服务器端运行:

相关推荐
hhzz15 分钟前
ansible自动化运维实战--script、unarchive和shell模块(6)
运维·自动化·ansible
蘑菇丁15 分钟前
ansible 批量按用户名创建kerberos主体,并分发到远程主机
大数据·服务器·ansible
百流17 分钟前
scala文件编译相关理解
开发语言·学习·scala
蘑菇丁18 分钟前
ansible批量生产kerberos票据,并批量分发到所有其他主机脚本
java·ide·eclipse
幻想编织者19 分钟前
Ubuntu实时核编译安装与NVIDIA驱动安装教程(ubuntu 22.04,20.04)
linux·服务器·ubuntu·nvidia
呼啦啦啦啦啦啦啦啦1 小时前
【Redis】持久化机制
java·redis·mybatis
阿狸的家1 小时前
ovs实现lb负载均衡
运维·云计算·负载均衡·ovs
C嘎嘎嵌入式开发1 小时前
什么是僵尸进程
服务器·数据库·c++
Evand J1 小时前
matlab绘图——彩色螺旋图
开发语言·matlab·信息可视化