自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 dy51:客户端跨平台移植

客户端// cpp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#define WIN32_LEAN_AND_MEAN#ifdef _WIN32#include<windows.h>#include<WinSock2.h>#pragma comment(lib,"ws2_32.lib")#define _WINSOCK_DEPRECATED_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS#else

2022-04-03 16:08:45 262

原创 dy45:支持select模型的客户端

服务端// cpp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//32#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#include<vector>#pragma comment(lib,"ws2_32.lib")u

2022-04-01 18:23:07 290

原创 dy添加接收缓冲区37

// cpp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//32#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#pragma comment(lib,"ws2_32.lib")using namespace std;enum CM

2022-03-31 21:20:25 113

原创 dy36笔记

服务端// cpp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//32#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#pragma comment(lib,"ws2_32.lib")using namespace std;enu

2022-03-31 20:59:43 467

原创 代理Proxy模式

#include<iostream>#include<memory>using namespace std;/*代理Proxy模式:通过代理类,来控制实际对象的访问权限客户 助理Proxy 老板 委托类*/class VideoSite{public: virtual void freeMovie()=0; // 免费电影 virtual void vipMovie()=0; //vip 电影 virtual void ticketMovi

2022-03-29 19:57:49 192

原创 5-08 通讯代码精粹之epoll函数实战2-2

一:ET,LT模式深入分析及测试LT:水平触发/低速模式,这个事件没处理完,就会被 一直触发; ET:边缘触发/告诉模式,这个事件通知只会出现一次;普遍认为ET比LT效率高一些,但是 ET编程难度比LT大一些; ET模式下,如果没有数据可接收,则recv会返回-1思考:为什么ET模式事件只触发一次[事件被扔到双向链表中一次,被epoll_wait取出后就干掉]LT模式事件会触发多次呢?[事件如果没有处理完,那么事件会被多次往双向链表中扔]如何选择ET,还是LT 如果收发数据包有固定格式【后

2022-03-29 13:49:38 76

原创 4-01 服务器程序目录规划、makefile编写

一:信号高级认识范例ps -eo pid,ppid,sid,tty,pgrp,comm,stat,cmd | grep -E ‘bash|PID|nginx’用kill 发送 USR1信号给进程(1)执行信号处理函数被卡住了10秒,这个时候因为流程回不到main(),所以main中的语句无法得到执行;(2)在触发SIGUSR1信号并因此sleep了10秒种期间,就算你多次触发SIGUSR1信号,也不会重新执行SIGUSR1信号对应的信号处理函数,而是会等待上一个SIGUSR1信号处理函数执行完毕

2022-03-29 13:40:58 125

原创 4-02 读配置文件、查泄漏、设置标题实战

一:基础设施之配置文件读取(1.1)前提内容和修改 使用配置文件,使我们的服务器程序有了极大的灵活性,是我们作为服务器程序开发者,必须要首先搞定的问题;配置文件:文本文件,里边除了注释行之外不要用中文,只在配置文件中使用字母,数字下划线 以#号开头的行作为注释行(注释行可以有中文)我们这个框架(项目),第一个要解决的问题是读取配置文件中的配置项(读到内存中来);(1.2)配置文件读取功能实战代码 写代码要多顾及别人感受,让别人更容易读懂和理解,不要刻意去炫技;这种炫技的人特别讨厌;该缩

2022-03-29 13:38:31 122

原创 5-09 ET、LT深释,服务器设计、粘包解决

epoll的模式讲解

2022-03-29 13:30:29 315 1

原创 配置nginx可以访问当地文件夹

user www-data;worker_processes 2;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events { worker_connections 768; # multi_accept on;}http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_time

2022-03-29 11:27:03 1672

原创 第三章 poll

poll的使用基本流程

2022-03-27 16:16:53 349

原创 一个简单的vector代码实现原理

一个简单的vector代码实现原理

2022-03-23 21:33:03 71

原创 C++类型转换

理论C++语言级别提供的四种类型转换方式 int a = (int)b;const_cast : 去掉(指针或者引用)常量属性的一个类型转换static_cast : 提供编译器认为安全的类型转换(没有任何联系的类型之间的转换就被否定了)reinterpret_cast :类似于C风格的强制类型转换dynamic_cast : 主要用在继承结构中,可以支持RTTI类型识别的上下转换class Base{public: virtual void func() = 0;};class

2022-03-23 21:30:49 646

原创 L27键盘

2022-03-22 10:37:20 77

原创 L16进程同步与信号量

2022-03-21 16:27:19 305

原创 L20内存使用与分段

操作系统是GDT表,进程是LTD表

2022-03-20 22:17:07 478

原创 智能指针概述

简单智能指针的实现#include<iostream>using namespace std;// 智能指针 保证能做到资源的自动释放!!!// 利用栈上的对象出作用域自动释放template<typename T>class CSmartPtr{public: CSmartPtr(T *ptr=nullptr) { mptr=ptr; } ~CSmartPtr() { delete mptr;

2022-03-16 20:19:36 190

原创 简单工厂和工厂方法

简单工厂#include<iostream>using namespace std;/*简单工厂工厂模式 :主要是封装了对象的创建抽象工厂*/class Car{public: Car(string name):_name(name){} virtual void show()=0;protected: string _name;};class BMW:public Car{public: BMW(string name):Car(n

2022-03-16 18:17:31 405

原创 21_大数据查重-位图

理论讲解代码实现#include <iostream>#include <vector>#include <stdlib.h>#include <time.h>#include <memory>using namespace std;/*有1亿个整数,最大值不超过1亿,问都有哪些元素重复了?谁是第一个重复的?谁是第一个不重复的(1个位保存数据的状态,2个位保存数据的状态)? 内存限制100M1亿 = 100M100M

2022-03-15 11:01:17 87

原创 22_布隆过滤器

##理论讲解##代码实现#include <iostream>#include <vector>#include "stringhash.h"#include <string>using namespace std;// 布隆过滤器实现class BloomFilter{public: BloomFilter(int bitSize = 1471) : bitSize_(bitSize) { bitM

2022-03-15 10:58:44 69

原创 24_大数据top k-快排分割

大数topk分割代码实现

2022-03-15 10:56:06 3607

原创 25_一致性哈希算法

一致性哈希算法,C++代码的实现

2022-03-15 10:49:36 77

原创 09_链式队列

理论讲解代码实现#include <iostream>using namespace std;// 链式队列class LinkQueue{public: LinkQueue() { head_ = new Node(); head_->next_ = head_; head_->pre_ = head_; } ~LinkQueue() { Node* p = head_->next_; while (p != head_)

2022-03-14 16:32:38 59

原创 11_基础排序

理论讲解代码实现#include <iostream>#include <stdlib.h>#include <time.h>using namespace std;// 冒泡排序算法void BubbleSort(int arr[], int size){ for (int i = 0; i < size-1; i++) // 趟数 O(n) * O(n) = O(n^2) { bool flag = false; // 一趟

2022-03-14 16:30:14 1053

原创 19_链式哈希表

理论讲解代码实现#include <iostream>#include <vector>#include <list>#include <algorithm>using namespace std;// 链式哈希表class HashTable{public: HashTable(int size = primes_[0], double loadFactor = 0.75) : useBucketNum_(0) , loa

2022-03-14 16:28:22 110

原创 18_线性探测哈希表

理论讲解代码实现#include <iostream>using namespace std;// 桶的状态enum State{ STATE_UNUSE, // 从未使用过的桶 STATE_USING, // 正在使用的桶 STATE_DEL, // 元素被删除了的桶};// 桶的类型struct Bucket{ Bucket(int key = 0, State state = STATE_UNUSE) : key_(key) , state_

2022-03-14 16:26:54 105

原创 39图的代码实现

理论讲解代码实现#include <iostream>#include <string>#include <vector>#include <list>#include <queue>using namespace std;// 实现一个有向图的邻接表结构class Digraph{public: // 从配置文件读入顶点和边的信息,生成邻接表 void readFile(string filePath)

2022-03-14 15:51:10 60

原创 37倒排索引

// 37_倒排索引.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <string>#include <list>#include <vector>#include <unordered_map>#include <algorithm>using namespace std;#undef UNICODE#include &...

2022-03-14 15:46:06 79

原创 30跳跃表

跳跃表(快表得代码实现和原理)

2022-03-14 15:38:31 297

原创 36字典树代码实现

理论讲解代码实现#include <iostream>#include <string>#include <map>#include <vector>#include <queue>using namespace std;// Trie字典树class TrieTree{public: TrieTree() { root_ = new TrieNode('\0', 0); } ~TrieTree() {

2022-03-14 15:35:49 77

原创 21大数查重位图法代码实现

// 21_大数据查重-位图.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <vector>#include <stdlib.h>#include <time.h>#include <memory>using namespace std;/*有1亿个整数,最大值不超过1亿,问都有哪些元素重复了?谁是第一个重复的?谁是第一个不重复的(1个位保.

2022-03-14 15:33:33 370

原创 04_双向链表

// 04_双向链表.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>using namespace std;// 定义双向链表的节点类型struct Node{ Node(int data = 0) : data_(data) , next_(nullptr) , pre_(nullptr) {} int data_; // 数据域 Node* next_; // 指向下一个节点 Nod

2022-03-14 15:31:55 2038

原创 库文件介绍

库文件的介绍静态库的制作动态库的介绍工作原理对比静态库优缺点动态库的优缺点

2022-03-12 21:19:28 326

原创 线程池的代码实现

封装文件的代码#ifndef LOCKER_H#define LOCKER_H#include<pthread.h>#include<exception>#include<semaphore.h>// 线程同步机制封装类// 互斥锁类class locker{public: locker() { if(pthread_mutex_init(&m_mutex,NULL)!=0) {

2022-03-12 15:39:12 313

原创 (webserver)项目重点知识点整理

2022-03-12 15:34:50 761

原创 两种高效的事件处理模式(Reactor模式和Proactor模式)

文章目录Reactor(反应堆)模式Proactor模式模拟Proactor模式Reactor(反应堆)模式Proactor模式模拟Proactor模式

2022-03-12 14:40:01 139

原创 虚拟地址空间

2022-03-12 14:34:16 57

原创 epoll分析

epoll的调用过程epoll的代码实现#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <sys/epoll.h>#include <errno.h>#include <ctype.h>#include "wrap.h"#d

2022-03-12 11:42:23 63

原创 面试要看的文章1

C++基础知识部分深入掌握C++智能指针C++11 - 右值引用C++11 - thread多线程编程,线程互斥和同步通信,死锁问题分析解决C++迭代器iterator详解C++继承与多态 - 继承多态原理01C++智能指针的enable_shared_from_this和shared_from_this机制C++STL容器内容总结设计模式C++设计模式 - 单例模式C++设计模式 - 迭代器模式...

2022-03-12 11:04:38 805

原创 观察者模式

观察者模式行为型模式:主要关注地是对象之间地通信观察者-监听者模式(发布-订阅模式)设计模式:主要关注地是对象地一对多地关系,也就是多个对象都依赖一个对象当该对象地状态发生改变时,其他对象都能够接受到相应地通知当对象数据发生改变地时候,其依赖地对象成员应该及时收到相应地通知#include<iostream>#include<string>#include<unordered_map>#include<list>using namespac

2022-03-11 10:30:58 711

C++数据结构学习PDF

C++数据结构学习PDF,讲解数据结构相关的知识点

2022-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除