- 博客(12)
- 收藏
- 关注
原创 基于C++的web服务器---http连接篇(上)
废话不多说,我们直接进入主题。本次分为三个部分讲解,第一部分为知识准备部分,第二部分为epoll的处理部分,即如何将事件读入,第三部分是如何对报文进行处理的部分(该部分会与线程池连在一起,因此我们放在最后并引出线程池篇)。开始之前,我们依旧先把整个的http连接的流程先过一遍,这样可以先熟悉一下整个过程。一.具体连接流程首先,服务端开启监听,然后客户端发送请求,希望和服务端相连接,当服务器accept()之后,这个请求就被挂到了epoll监听队列上,当有读事件或者写事件发生时(这里可以简单的把读事件
2022-03-15 16:22:46 4793 3
原创 基于C++的web服务器---总述篇
一个web服务器的项目,这里把自己的理解写出来,同时也是想记录一下整个学习的过程。废话不多说,直接开始。什么是web服务器?就是通过HTTP协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的HTTP请求,并对其请求做出HTTP响应,返回给客户端其请求的内容(文件、网页等)或返回一个Error信息。用户如何与你的Web服务器进行通信?在浏览器中键入“域名”或“IP地址:端口号”,浏览器则先将你的域名解析成相应的IP地址或者直接根据你的IP地址向对应的Web服务器发
2022-03-14 18:25:03 8951
原创 用qt 写DDA ,Bresenham画线,中点圆和椭圆
计算机图形学课内实验用qt 写DDA ,Bresenham画线,中点圆和椭圆:mainwindow.h:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPushButton>#include <QTextEdit>#include <QLabel>namespace Ui {class MainWindow;}class MainWi
2020-12-31 23:48:11 1288
原创 九宫重排问题的实现
九宫重排问题的实现把1—8个数字按要求推动得出结果。如把把8 5 7 3 6 4 1 2推成1 2 3 4 5 6 7 8。就如同对于密码锁的破解,8个数字有着无穷个不同变幻的排列方式,游戏攻略如同玩滑动拼图,这里锻炼人的逆向思维能力,为进一步的九宫格游戏做准备。游戏中必须注意的是,以最少的移动次数拼出结果者为胜。本文采用【蓝桥杯】历届试题中的九宫重排问题来讲述此算法:我们把第一个图的局面记为:12345678.把第二个图的局面记为:123.46758显然是按从上到下,从左到右的顺序记录数字,空格
2020-12-31 23:42:52 1055
原创 主观Bayes算法的实现
主观Bayes算法的实现摘 要不确定性推理是指建立在不确定性知识和论据基础上的推理。首先,本文设计了基于主观Bayes方法的不确定性推理算法, 通过实验结果比较了结论不确定的合成算法与更新算法的一致性, 实现了不确定推理问题求解的自动化。关键词:不确定性推理 主观Bayes1 问题描述在证据不确定的情况下,以充分性量度LS、必要性量度LN、E 的先验概率P(E)和H的先验概率P(H)作为前提条件,分析P(H/S)和P(E/S)的关系。2 主观Bayes原理介绍主观Bayes方法又称主观
2020-12-31 23:37:47 3173 2
原创 操作系统实验时遇到的问题
操作系统实验时遇到的问题:Readme:头文件的问题,由于不足造成隐式声明不兼容的问题这里给出一般需要的头文件:#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#includ
2020-12-31 23:26:49 1147 1
原创 如何对string里的数字进行加减操作
参考以下代码:取shu[i]的值,可以是任意一个数字,然后对其进行减操作,注意是要减去一个ascll数。检验得到的结果是正确的。#include "stdafx.h"#include <string.h> void main(){ char shu[100]; scanf("%s",shu); int sum; sum=0; int len=strlen(shu); for(int i=0; i<len; i++) {
2020-12-14 19:12:52 4688
原创 break和continue的区别
1.break用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。使用说明:(1)只能在循环体内和switch语句体内使用break;(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。2.continuecontinue语句的作用是跳过本次循环体
2020-10-18 19:31:10 295
原创 多个if语句和else if的区别
if无论是否满足条件都会向下执行,直到程序结束,else if 满足一个条件就会停止执行。由于if都会执行一遍,则可能会同一个需要判断的事件,会进入2个if语句中,出现错误,而else if就不会发生这样的事情。多个if是:所有的if都会进行判断if else: if是只要有满足条件的,就不再对之后的else if进行判断比如a = 2;if(a==1) c=1;if(a==2) c=2;if(a%2==0) c=3;最终结果c=3a=2;if(a==1) c=1;else if(a
2020-10-18 19:06:06 2047
原创 免费个人博客搭建
创建Github 域名和空间第一步:打开官网:https://github.com 注册一个帐户。注意username,这会影响到你的域名,你的域名将会是 username.github.io 。第二步:创建仓库 填写仓库的名字和描述需要创建一个仓库(repository) 来存储我们的网站,点击首页任意位置出现的 New repository按钮创建仓库, Respository name 中的username.github.io 的username 一定与前面的Owner 一致,记住你的user.
2020-10-17 20:52:57 432
原创 使用Halo建立自己的私人博客
用Halo建立自己的私人博客第一步配置 Java 环境,这个教程应该能帮助你:链接: https://www.runoob.com/java/java-environment-setup.html.我是在windows中配的,前面jdk不用多说,按步骤来就完事儿了,最主要的是后面环境配置,一定要注意path是添加的两个。第二步下载 Halo 运行包:Github releases:lhttps://github.com/halo-dev/halo/releases.点进去直接下载下来就行。
2020-10-17 20:44:03 384
原创 简单二叉树的模型和解法(C++)
几类简单树的模型和解法(C++)这几类都需要采用递归的思想来进行计算。相同的树例题:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。解题思路:拿到这道题之后,我们可以把问题转变为:把每个节点的值依次比较,如果相同,则认为相等。因此显然是一个递归的问题。这里先给出代码: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL
2020-10-15 21:53:15 868
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人