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

宁德市城乡住房建设厅网站网页设计需要哪些软件

宁德市城乡住房建设厅网站,网页设计需要哪些软件,微信开发者工具app,完整的网站开发流程📝前言: 这篇文章我们来讲讲Linux——自定义协议,序列化和反序列化 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记&a…

📝前言:

这篇文章我们来讲讲Linux——自定义协议,序列化和反序列化

🎬个人简介:努力学习ing
📋个人专栏:Linux
🎀CSDN主页 愚润求学
🌄其他专栏:C++学习笔记,C语言入门基础,python入门基础,C++刷题专栏


目录

  • 一,套接字缓冲区
  • 二,序列化和反序列化
    • 1. jsoncpp
    • 2. Json::Value
    • 3. Json::FastWriter 和 Json::Reader
  • 三,守护进程
    • 1. 补充知识
    • 2. 作业
      • 2.1 作业状态
      • 2.2 作业控制
    • 3.守护进程
  • 四,代码实现

一,套接字缓冲区

  • TCP 和 UDP 套接字都有内核维护的缓冲区。当调用read()时,数据并非直接发送到网络,而是从用户空间拷贝到套接字的发送缓冲区。
  • 当数据拷贝到套接字缓冲区时,内核会帮我们把数据通过网络传送到另一个主机的套接字缓冲区中(也就是说:数据在网络中的实际传输由操作系统内核负责,应用程序无需关心底层细节)
  • 再由对方调用read()把数据从缓冲区拷贝回他的用户层

在这里插入图片描述
注意:因为TCP协议是面向字节流的,所以我们无法确定我们read得到的是 0.5个/ 1个 / 1.5 个报文,即:我们需要设置分隔符等方法来:确保接受报文的单个完整性

二,序列化和反序列化

  • 数据能传:为了使数据传输更方便,我们通常先将数据序列化统一,然后方便网络的传输,另一方收到了以后,再反序列化得到原来的数据。
  • 数据能懂:为了确保数据的规范(或者说让对方能知道数据的含义),我们通常会制定协议(即:规定)

1. jsoncpp

安装:sudo apt-get install libjsoncpp-dev ,如果不行,可能是apt-get没有更新到最新版本,应该先执行:sudo apt-get update
安装好后,头文件在:#include <jsoncpp/json/json.h>

2. Json::Value

Json::Value 本质上就是 JSON 序列化 / 反序列化流程中的 “中间站” 和 “结构化数据容器”,结构化的数据和字符串json都会中途存储在 Jason::Value
在这里插入图片描述

3. Json::FastWriter 和 Json::Reader

  • Json::FastWriterwrite用于序列化
  • Json::Readerparse用于反序列化

注意:serverclient序列化反序列化要处理的数据是不同的

client → server

  • client需要将3+2表达式序列化,然后传输给server
  • server需要将接收到的3+2反序列化,然后调用cal计算(业务)

server → client

  • server将得到的结果:5序列化传输回去
  • client收到后,反序列化得到5

我们把client的操作封装到Request中,把server的操作封装到Response

三,守护进程

1. 补充知识

一些基本概念:

  • 进程组:进程是以进程组的形式完成任务的,组长进程的ID和进程组ID一样
  • 会话:是多个进程组的集合
    • 一个终端创建的时候就有一个会话
    • 如果会话销毁了,OS会向里面的进程组发送SIGHUP 信号(挂断信号),即:里面的进程都会销毁
    • 会话也有ID(SID)
    • 当登陆Xshell的时候,就是创建会话,bash进程独立成一组,成为该会话的首进程,并且会打开文件描述符012

:为什么终端运行了新进程以后,终端就无法响应ls等命令。
:因为键盘只有一个,即:所以一次会话中有且只能有一个前台进程组,占用标准输入。当我们在bash运行新进程的时候,新进程会继承bash的文件描述符012,新进程作为前台进程,此时bash会被切换到后台,所以不会得到前台的标准输入。

2. 作业

作业:在当前终端会话中启动用来完成某些任务的进程或进程组

2.1 作业状态

在这里插入图片描述

2.2 作业控制

  • jobs:查看作业列表
    在这里插入图片描述

  • &:启动时加&默认到后台运行

  • Ctrl+Z:挂起,向前台进程组的所有进程发送 SIGTSTP 信号(挂起信号),前台进程组立刻暂停

  • fg:将作业切回前台
    在这里插入图片描述

  • bg:将挂起作业恢复至后台(只能对暂停作业恢复),参数和fg一样

3.守护进程

终端创建的时候会创建会话,如果终端关了,会话就被销毁了,会话中的进程就会销毁。

和终端切除关联:setsid() 函数

  • 为调用进程创建新的会话,并成为该新会话的首进程,与原终端切除关联了
  • 调用setsid()进程不能是组长进程
    • 避免进程组组长:先通过 fork() 创建子进程,让父进程退出,再让子进程调用 setsid()(因为有父进程,所以子进程一定不是组长)

切断与终端交互:dev/null文件

  • 写入这个文件的内容都会被丢弃,从这个文件里面读到的内容都是空
  • 守护进程往往要把012给关了,或者重定向,因为守护进程不与终端交互

设计守护进程的系统调用daemon

#include <unistd.h>
int daemon(int nochdir, int noclose);
  • daemon的核心是setsid()
  • 参数
    • nochdir:是否保留原工作目录
      • 1:保留
      • 0:不保留,切换到/目录(推荐)
    • noclose:是否保留标准流
      • 1:保留
      • 0,不保留,重定向到dev/null文件(推荐)

四,代码实现

请访问我的GIthub——Netcal

运行时,查看进程信息,可见TTY → ?(即:关联到任何交互式终端,已为守护进程)
在这里插入图片描述


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

http://www.dtcms.com/a/467858.html

相关文章:

  • 中国建设法律法规网官方网站建设部网站 规范下载
  • 营销型网站的域名网站建设的标准化建设是什么
  • 通化县建设局网站wordpress无法显示此页
  • Gradle包下载方式
  • 怎么做网站的主页面wordpress修改图片地址
  • 网站开发案例图片网页界面设计的宗旨是什么
  • 北京做网站推广的公司网站建设制作价格低分类信息
  • 西安网站seo分析唐山网站建设报价
  • 自己做网站帮别人卖东西能看街景的软件
  • 益阳建设公司网站麻豆精产三产区区别
  • 做网站还是订阅号云南 网站建设网站
  • 旅游网站建设经济评价分类信息网站建设方案
  • 亚运村网站建设免费高清视频素材app哪里找
  • 网站修改了关键词被降权软件开发前端和后端区别
  • 做网站必须在工信部备案吗网站与装修公司
  • 苏州网站建设有限公司都江堰网站建设公司
  • 杭州网站建设哪家强网站建设 推广薪资
  • 个人网站备案出现公司名字怎么办社区推广怎么做
  • 【解决办法】网络训练报错AttributeError: module ‘jax.core‘ has no attribute ‘Shape‘.
  • 商城网站开发培训学校网站推荐正能量
  • 帮助做问卷调查的网站视频网站开发流程图
  • 网站建设分金手指排名十一网站与客户端的区别吗
  • 汕头网站建设系统移动端网站的重要性
  • 招商网站有哪些外国人做的汉字网站
  • 集团公司网站案例网站建设 云计算
  • 天津建设科技杂志的官方网站中铁三局招聘文员要求身材好
  • 网站站长如何赚钱WordPress料神
  • 黄岩做网站公司电话网站图片上的水印怎么做
  • 后端网站开发遇到的难题解决网站你懂我意思正能量晚上在线观看不用下载免费魅族
  • 地区网站建设html网页制作代码模板