文章 2023-11-10 来自:开发者社区

C++项目实战-UDP服务器

TCP与UDP        传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。        相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立....

C++项目实战-UDP服务器
文章 2023-11-10 来自:开发者社区

C++项目实战-高并发服务器详析(二)

select        主旨思想:        1.首先要构造一个关于文件描述符的列表,将要监听的文件描述符添加到该列表中        2.调用一个系统函数,监听该列表中的文件描述符,直到这些描述符中的一个或多个进行I/O操作时,该函数才返回。   &n...

C++项目实战-高并发服务器详析(二)
文章 2023-11-10 来自:开发者社区

C++项目实战-高并发服务器详析(一)

BIO模型阻塞等待:不占用CPU宝贵的时间片,但是每次只能处理一个操作        BIO模型: 通过多线程/多进程解决每次只能处理一个操作的缺陷。但是线程/进程本身需要消耗系统资源,并且线程和进程的调度占用CPU.BIO模型:        1.线程或进程会消耗资源       &am...

C++项目实战-高并发服务器详析(一)
文章 2023-11-10 来自:开发者社区

C++项目实战--线程池代码讲解

先上代码:#ifndef THREADPOOL_H #define THREADPOOL_H #include <mutex> #include <condition_variable> #include <queue> #include <thread> #include <functional> class ThreadPool {....

C++项目实战--线程池代码讲解
文章 2023-11-10 来自:开发者社区

C++项目实战-实际应用(二)

HTTP请求方法HTTP/1.1 协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源: 1. GET:向指定的资源发出“显示”请求。使用 GET 方法应该只用在读取数据,而不应当被用于产生“副 作用”的操作中,例如在 Web Application 中。其中一个原因是 GET 可能会被网络蜘蛛等随意访 问。 2. HEAD:与 GET 方法一样,都是向服务器发出指定资源的请求。只不....

C++项目实战-实际应用(二)
文章 2023-11-10 来自:开发者社区

C++项目实战-实际应用(一)

典型IO的两个阶段(网络IO)I和O分别表示输入、输出。网络通信是通过网络套接字socket实现是,其实就是内核中的一个缓冲区。网络IO分为两个阶段:数据就绪、数据读写(这两个概念是不同的,不能混为一潭)数据准备:根据系统IO操作的就绪状态        分为:阻塞、非阻塞数据读写:根据内核与应用程序的交互方式       &a...

C++项目实战-实际应用(一)
文章 2023-11-10 来自:开发者社区

C++项目实战-socket编程

socket套接字概念        所谓套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进程通信的接口,是应用程序与网络协议进行交互的接口。     &...

C++项目实战-socket编程
文章 2023-11-10 来自:开发者社区

C++项目实战-信号(二)

软件条件产生信号        alarm函数        说明:设置定时器(闹钟)。在指定多少秒后,内核会给当前进程发送14)SIGALRM信号,进程收到该信号,默认动作终止进程。无论进程处于某种状态都会记时        原型:       ....

C++项目实战-信号(二)
文章 2023-11-10 来自:开发者社区

C++项目实战-信号(一)

信号的概念信号在我们的生活中随处可见,如古代烽火戏诸侯中的烽火,跑步时的使用的信号枪发出的信号。所以说,信号是信息的载体,不能够携带大量的信息信号的共性简单,不能够携带大量的信息,满足某个特定条件,优先级高使用信号的目的1.让进程知道已经发生了一个特定的事情2.强迫进程执行它自己代码中的信号处理程序(中断机制)信号的机制A给B发送信号。B收到信号之前执行自己的代码,收到信号后,不管执行到程序的什....

C++项目实战-信号(一)
文章 2023-11-10 来自:开发者社区

C++项目实战-多进程(一篇文章)(三)

有名管道FIFOFIFO常被称为命名管道,以区分管道(pipe)。管道(pipe)只能用于"有血缘关系"的进程间。但通过FIFO不相关的进程也能交换数据。FIFO是Linux基础文件类型中的一种。但,FIFO文件磁盘上没有数据块,仅仅用来标识内核中的一条通道。实际上是在读写内存通道,这样就是实现了进程间通信。有名管道使用注意事项一个为只读而打开一个管道的进程会阻塞,直到另一个进程为只写打开管道一....

C++项目实战-多进程(一篇文章)(三)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注