linux精通 4.1

news2024/10/22 15:00:42

2.1.3 http服务器实现

  1. 目的

    reactor应用——webserver webclient

    每次上课前 看大纲+down code

  2. 复习:

    在这里插入图片描述

    不行啊 编译给的代码报错啊 给的最新的不是0430那一版就不行啊

    reactor.c:(.text+0x254): relocation truncated to fit: R_X86_64_PC32 against symbol `begin' defined in COMMON section in /tmp/cctoLdtd.o
    

    你学会了吗 小朋友 😆 git 拉取某一次的版本 我好棒成功了

    git拉取历史提交的代码_git拉取某次提交的代码-CSDN博客

    一开始clone下来git clone .git

    在这里插入图片描述

    git log查看某一日期的commit git switch -c 名字创建一个分支branch

    git checkout 提交hash值切换到某一次提交

    在这里插入图片描述

    git switch main 又可以切回main分支

  3. 编译0427版本还是报错

    https://blog.csdn.net/www_helloworld_com/article/details/88964968

    gcc -mcmodel=medium -o reactor reactor.c 
    

    在这里插入图片描述

    成功啦 send以后返回接收的数据

水平 边沿触发

  1. 水平:只要有数据 没读完前一直触发

  2. 边沿:有数据只触发一次,不管读完没

    改accept cb里 默认水平lt,或一个epollet边沿触发

    event_register(clientfd, EPOLLIN | EPOLLET);
    

    bufferlength = 10 改小buffer 明显一点

    改recv_cb

    if 1
        里面
        printf("[%d] RECV: %s\n",  conn_list[fd].rlength, conn_list[fd].rbuffer);
    
    
    把这一行注释掉,accept事件以后只有recv,没有epollout 没有再次预设事件        
    // set_event(fd, EPOLLOUT, 0);
    

    效果

    ET边沿触发 只触发一次,一段段recv,配套while

    你妈喊你吃饭,一直喊喊道答应为止

    每次client send32 byte

    每次server 收buffer 10

    1串字符32byte 要四次,所以要按四次send servervscode里才收的完!!!!

    在这里插入图片描述

    LT水平触发——触发四次,不需要while 全自动

    你妈喊你吃饭直喊一次,全自动不再喊等到你来

    client网络助手里send一次,vscode的server端一次性跳出来4行,就是边沿要四次才能收到的数

    为什么有奇奇怪怪的结尾,因为没有memset清空

    何时用LT ET

    非阻塞IO用边沿触发,因为如果阻塞io,进入while会卡住,不recv了,所以非阻塞io用边沿触发好

    在这里插入图片描述

    **水平触发:适合包大小固定的,**多个client 连listenfd 然后server调用accept

    边沿:适合每个包大小不确定的,while加accept()直到accept(返回-1 不读了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1843874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity 材质系统优化(mesh相同,图片不同,但是可以将所有的图片合成一张图集)

今天提供一个Unity材质优化的思路,流程是这样的,模型的mesh相同只是图片不同,我想着能不能将所有的图片合成一张图集呢,于是我就试着在Blender里面开搞了,所有的mesh相同的模型,共用一个材质(图…

分支结构相关

1.if 语句 结构: if 条件语句: 代码块 小练习: 使用random.randint()函数随机生成一个1~100之间的整数,判断是否是偶数 import random n random.randint(1,100) print(n) if n % 2 0:print(str(n) "是偶数") 2.else语…

Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决

问题描述 游戏暂停的功能是通过设置timeScale0实现的,不过在暂停游戏的时候,需要对角色进行预览和设置,为了实现这个功能,是通过鼠标控制相机的操作,为了使相机的操作丝滑,获取鼠标操作系数乘以Time.delta…

代码大模型揭秘:从下载到推理,全流程体验StarCoder

选择模型 模型榜单 大模型的发展日新月异,性能强劲的大模型不断涌现,可以实时关注开源大模型的榜单,选择合适自己的大模型 开源大模型榜单 开源代码大模型榜单 模型网站 目前主流的下载模型的网站就是 huggingface 全球社区,…

Python - 各种计算器合集【附源码】

计算器合集 一:极简版计算器二:简易版计算器三:不简易的计算器四:还可以计算器 一:极简版计算器 运行效果: import tkinter as tk import tkinter.messagebox win tk.Tk() win.title("计算器")…

Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)

Linux系统ubuntu20.04 无人机PX4 开发环境搭建 PX4固件下载开发环境搭建MAVROS安装安装地面站QGC PX4固件下载 PX4的源码处于GitHub,因为众所周知的原因git clone经常失败,此处从Gitee获取PX4源码和依赖模块。 git clone https://gitee.com/voima/PX4-…

python学习笔记-09

面向对象编程-中 面向对象三大特征:封装、继承、多态。 封装:把内容封装起来便于后面的使用。对于封装来讲,就是使用__init__方法将内容封装道对象中,然后通过对象直接或者self获取被封装的内容。 继承:子继承父的属…

悬浮翻译app免费怎么操作?看完这篇文章就知道了

#高考结束该出发看世界了# 高考的钟声已落,是时候开启探索世界的旅程了。无论是踏上旅途,观看视频,阅读书籍,还是浏览网页资料,我们都有机会拓宽视野。 然而,语言常常成为我们与世界沟通的障碍。好在&…

具身智能特点及实现路线

多模态——多功能的“小脑” 人类具有眼耳鼻舌身意,说明对于物理世界的充分感知和理解,是意识和智慧的来源。而传统AI更多的是被动观测,主要是“看”(计算机视觉)和“读”(文本NLP)&#xff0c…

Kubernetes容器运行时:Containerd vs Docke

容器化技术笔记 Kubernetes容器运行时:Containerd vs Docke - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this arti…

一文教你在centos 7.9中安装mysql5.7(超级详细)

##red## 🔴 大家好,我是雄雄,欢迎关注微信公众号,雄雄的小课堂。 一、前言 每当新来一个服务器之后,习惯性的都会安装一个宝塔面板,不为别的,就为了装环境方便点儿,比如常用的jdk,m…

C++初学者指南第一步---10.内存(基础)

C初学者指南第一步—10.内存(基础) 文章目录 C初学者指南第一步---10.内存(基础)1.内存模型1.1 纸上谈兵:C的抽象内存模型1.2 实践:内存的实际处理 2. 自动存储3.动态存储:std::vector3.1 动态内…

动态住宅代理IP:多账号矩阵管理的使用

如果您要处理多个在线帐户,选择正确的代理类型对于实现流畅的性能至关重要。但最适合这项工作的代理类型是什么? 为了更好地管理不同平台上的多个账户并优化成本,动态住宅代理IP通常作用在此。 一、什么是轮换代理? 轮换代理充当…

逆旅热闹如花盛放

热闹 未及十五,月亮的清辉已可穿透厚厚的云层铺撒人间。 几颗星星点缀着夜空,偶尔一架飞机闪烁着光芒。 很难得的晴夜。 近两个月以来的雨,像电影上的蒙太奇画帧,一幕接一幕,只是单调的灰色,困乏人心。 …

面试官:用过分布式事务吗?

当下的软件架构中,分布式微服务大行其道。然而,分布式系统的核心挑战之一就是如何保证跨多个服务和数据库的数据一致性,这正是分布式事务要解决的问题。 为啥会有分布式事务问题? 在单体应用中,事务管理相对简单&…

两行css 实现瀑布流

html <ul ><li><a href"" ><img src"05094532gc6w.jpg" alt"111" /><p>传奇</p></a></li><li><a href"" ><img src"05094532gc6w.jpg" alt"111"…

QT-QPainter实现一个动态充电的电池

1、效果 2、核心代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer>

10万人寻梦玩具好莱坞 ,一人逆袭年销1.8个亿

文丨王一粟 周效敬 奥特曼、四驱赛车、毛绒玩具......如果有一个地方能实现玩具自由&#xff0c;那一定是广东澄海。 澄海是中国乃至世界的玩具之都&#xff0c;给亿万的孩子甚至长大了的孩子带来无数快乐&#xff0c;堪称玩具好莱坞。 无数的年轻人怀揣着实现财富自由的梦想…

电脑怎么恢复出厂设置?系统还原怎么操作?就看这5个方法!

电脑怎么恢复出厂设置&#xff1f;如果您的电脑出现问题&#xff0c;在电脑上恢复出厂重置非常有用。它基本上可以重置电脑&#xff0c;使其恢复到下线时的状态&#xff0c;给你一个全新的开始。众所周知&#xff0c;我们使用电脑的时间越长&#xff0c;电脑上的文件和程序就会…

win10 安装PowerShell

总结: 直接下一步,下一步… 下载链接 https://download.csdn.net/download/qq_43071699/89462517