实现一个简单的网络通信下(udp)

时间过去好久了,先回忆一下上一篇博客的代码!!

目前来看,我们客户端发一条消息,我服务器收到这一条消息之后呢,服务器也知道了是谁给我发来的消息,紧接这就把这条消息放进buffer当中,在把我们的 用户IP和端口号,提取出来当作我们 的key插入我们的用户管理当中,在发回给客户端

那么我们接下来在干一件事,在加一个客户端

但是这时候127.0.0.1 - 42909这个客户端并没有"你好l"这一条消息,这个客户端的IO 被阻塞了

而我们现在想要的效果是,我服务端发送消息,在服务端用户管理当中的用户,都能收到这一条消息,并且哪怕我的这个用户不向服务端发送消息,也依然能收到来自服务端的消息

那么我们就需要把我们的客户端改一下,引入我们的多线程,让我们的一个线程发消息,一个线程收消息

这样,我们的读写两个线程的回调方法就写好了

发现此时我们的多线程读写,用的sock都是同一个,sock代表的就是文件(我们是没办法对同一个文件同时又是读又是写的),但是在这边是没有问题的,我们的udp是全双工的 --> 可以同时进行收和发,而不受干扰

但是此时,一个客户端把要发的和要收的消息,混在一起了,我们可以分开来

相关推荐
国服第二切图仔11 分钟前
Rust开发之使用 Trait 定义通用行为——实现形状面积计算系统
开发语言·网络·rust
7ACE12 分钟前
Wireshark TS | 接收数据超出接收窗口续
网络协议·tcp/ip·wireshark
深圳南柯电子14 分钟前
纯电汽车EMC整改:预防性设计节省47%预算|深圳南柯电子
网络·人工智能·汽车·互联网·实验室·emc
国服第二切图仔1 小时前
Rust开发之使用match和if let处理Result错误
开发语言·网络·rust
huangql5201 小时前
Nginx 从零到精通 - 最详细的循序渐进教程
开发语言·网络·nginx
llxxyy卢1 小时前
HTTP 头部参数数据注入测试sqlilabs less 18
网络·网络协议·http
NiKo_W2 小时前
Linux Socket网络编程基础
linux·服务器·网络
九河云2 小时前
华为云 Flexus 对象存储:高可靠低成本双引擎,筑牢企业数据根基
服务器·网络·人工智能·科技·华为云
xx.ii2 小时前
k8s:service资源详解
运维·网络·容器·kubernetes
孙同学要努力2 小时前
《Linux篇》进程等待(wait、waitpid)与进程程序替换(exec等接口)
linux·服务器·网络