![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ 服务器项目
文章平均质量分 97
R-G-B
计算机硕士,机器视觉、图像处理
展开
-
Linux C++服务器项目——项目实战2、3(项目代码讲解)
但反过来思考,注册了EPOLLONESHOT事件的socket一旦被某个线程处理完毕,该线程就应该立即重置这个socket 上的EPOLLONESHOT事件,以确保这个socket下一次可读时,其EPOLLIN事件能被触发,进而让其他工作线程有机会继续处理这个socket。状态机的当前状态记录在cur_State变量中。比如一个线程在读取完某个socket 上的数据后开始处理这些数据,而在数据的处理过程中该socket上又有新数据可读(EPOLLIN再次被触发),此时另外一个线程被唤醒来读取这些新的数据。原创 2022-09-20 14:06:51 · 928 阅读 · 0 评论 -
Linux C++服务器项目——项目实战1(理论知识)
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。HTTP是万维网的数据通信的基础HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。原创 2022-09-19 14:57:20 · 1434 阅读 · 0 评论 -
Linux C++服务器项目——网络编程2(三次握手、四次挥手、IO多路复用)
由于TCP连接是全双工的,断开一个TCP连接,需要客户端与服务器发送四个包来确认连接的断开。原创 2022-09-18 11:53:22 · 371 阅读 · 0 评论 -
Linux C++服务器项目——网络编程1 (socket通信,服务端,客户端)
IP协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧")的格式不同。原创 2022-09-17 16:00:48 · 1826 阅读 · 0 评论 -
Linux C++服务器项目——多线程
与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的UNIX进程只是多线程程序的一个特例,该进程只巴合一个线柱)进程是CPU分配资源的最小单位,线程是操作系统调度执行的最小单位。线程是轻量级的进程(LWP: Light Weight Process),在Linux环境下线程的本质仍是进程。原创 2022-09-16 10:10:06 · 325 阅读 · 0 评论 -
Linux C++服务器项目——信号
信号是Linux进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。发往进程的诸多信号,通常都是源于内核。引发内核为进程产生信号的各类事件如下:对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C通常会给进程发送一个中断信号。原创 2022-09-15 18:21:32 · 219 阅读 · 0 评论 -
Linux C++服务器项目——多进程
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,颇有些神似"三十六计"中的"金蝉脱壳"。看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回-1,从原程序的调用点接着往下执行。原创 2022-09-15 12:20:56 · 983 阅读 · 0 评论 -
Linux C++服务器项目——系统编程2(静态库、动态库、文件IO)
库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。库文件有两种,静态库和动态库(共享库),区别是:静态库在程序的链接阶段被复制到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。1.代码保密;⒉方便部署和分发;原创 2022-09-17 16:15:34 · 258 阅读 · 0 评论 -
Linux C++服务器项目——系统编程1(gcc、makefile、GDB)
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile文件就像一个 Shell脚本一样,也可以执行操作系统的命令。Makefile带来的好处就是"自动化编译”,一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。原创 2022-09-17 16:14:01 · 212 阅读 · 0 评论 -
Linux C++服务器项目——环境搭建、配置
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile文件就像一个 Shell脚本一样,也可以执行操作系统的命令。Makefile带来的好处就是"自动化编译”,一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。原创 2022-09-14 09:16:41 · 2958 阅读 · 0 评论