Socket编程UDP-简单的聊天室

最后的全部代码demo21/3.ChatServer · 咕咕咕/linux_cpp - 码云 - 开源中国

我们服用了上一节的代码Socket编程UDP - 字典功能-CSDN博客

最后的样子结果是这样的

一开始的框架是这样的 后续我们慢慢加~

我们要实现的是如下图,就是一个简单的聊天室!

描述客户端的类和管理

首先我封装了线程和线程池可以直接用,直接去我得码云上复制粘贴即可,其余的都是复用的上一节的代码!!

我们为了后续给在线客户端转发广播信息,那就需要去创建一个结构去管理他们!!

后面我们将server和client修改了名字

我们已经描述了客户端,那我们现在要把他们组织起来也就是管理

创建一个管理类

我们使用vector对这个客户端进行管理!!

增加上述功能,其实都不难的!!!

路由

后续我们需要做将信息转发给所有人!!

所以我们要有一个路由的类 Route

服务端的修改

在服务端进行修改,给服务端设置俩回调函数,进行注册

然后测试一下!!!

客户端

这时候能看客户端是阻塞式收发的,按照道理我们不发消息也可以看到消息,所以后续要继续修改客户端!!!

最后服务端做一定修改

最后就是这样

相关推荐
Shanks.4 小时前
2026 远程控制软件实测:ToDesk / 向日葵 / RustDesk / TeamViewer 在跨城与弱网下的真实差距
网络·远程工作·软件需求
Jeremy_WW4 小时前
802.3协议解读 06:117章节 RS 和 200GMII / 400GMII I
网络·网络协议·信息与通信·光模块·802.3协议
坤坤子吖5 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
顧棟6 小时前
INFINI Gateway 服务器端口重用(SO_REUSEPORT)实现与分析
网络·gateway
沫璃染墨6 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
LabVIEW开发7 小时前
Omron PLC:接 LabVIEW 常踩的 5 个坑
服务器·网络·labview·labview知识·labview功能·labview程序
南京码讯光电技术有限公司7 小时前
工业5G/4G路由器怎么选?核心参数解析与工业级网关选购指南
网络·智能路由器
爱和冰阔落7 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
feng_you_ying_li21 小时前
linux之数据链路层
linux·网络·智能路由器
国科安芯1 天前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射