当前位置: 首页 > news >正文

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

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

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

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

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

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

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

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

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

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

相关文章:

  • 计算机网络——传输层
  • C++ 智能指针和内存管理:使用指南和技巧
  • 鸿蒙App开发 HarmonyOS:网络请求+三方库使用+底栏切换+列表+Banner
  • Python 错误 TypeError: __str__ Returned Non-String but Printing Output
  • Redis中缓存穿透、击穿、雪崩以及解决方案
  • PHP如何实现邮箱验证
  • 如何解决ajax浏览器缓存
  • 微信小程序保存二维码的过程
  • 构建第一个ArkTS应用(纯HarmonyOS应用)
  • 打印菱形图案C语言
  • C++服务器 支持http、tcp protobuf、websocket,linux开源框架 零依赖轻松编译部署 Reactor
  • SCAU:前一个和后一个字符
  • JAVA代码优化:Easy Excel(操作Excel文件的开源工具)
  • 基于ssm Vue的戒烟网站源码和论文
  • 实时流式计算 kafkaStream
  • 4. 路由到控制器 - Laravel从零开始教程
  • Angular 2 DI - IoC DI - 1
  • Docker 笔记(2):Dockerfile
  • Intervention/image 图片处理扩展包的安装和使用
  • JAVA_NIO系列——Channel和Buffer详解
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • mac修复ab及siege安装
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 安装python包到指定虚拟环境
  • 闭包--闭包作用之保存(一)
  • 关于for循环的简单归纳
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 让你的分享飞起来——极光推出社会化分享组件
  • 数据可视化之 Sankey 桑基图的实现
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  •  一套莫尔斯电报听写、翻译系统
  • 用Visual Studio开发以太坊智能合约
  • 再谈express与koa的对比
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • FaaS 的简单实践
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Python 3 新特性:类型注解
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • (3)(3.5) 遥测无线电区域条例
  • (二)c52学习之旅-简单了解单片机
  • (过滤器)Filter和(监听器)listener
  • (四)汇编语言——简单程序
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • *上位机的定义
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core Swagger 过滤部分Api
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 设计一套高性能的弱事件机制
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • /3GB和/USERVA开关
  • @test注解_Spring 自定义注解你了解过吗?