原创 windows下設置最大連接數

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters] "MaxUserPo

原创 boost 庫 Simple HTTP Client

#include <boost/beast/core.hpp> #include <boost/beast/http.hpp> #include <boost/beast/version.hpp> #include <boost/asio

原创 一臺機器配置多個git賬號

# 配置user1  Host u1.github.com HostName github.com IdentityFile C:\\Users\\admin\\.ssh\\id_rsa1 PreferredAuthentications

原创 git revert 和git reset區別

git revert與git reset最大的不同是,git revert 僅僅是撤銷某次提交,而git reset會將撤銷點之後的操作都回退到暫存區中。1、git revert是用一次新的commit來回滾之前的commit,g

原创 幾種 I/O Multiplexing 方式的比較

select 和 poll 的缺陷   I/O多路複用允許進程同時監聽多個文件描述符,這樣進程就可以知道哪些文件描述符存在I/O就緒了。select()是最早出現的I/O多路複用方式,然而由於早期select()的API設計不當,導致了s

原创 c++測試boot.asio選擇I/O模型

#include <iostream> #include <string> #include <boost/asio.hpp> int main() { std::string output; #if defined(BOOST_ASIO

原创 boost中asio多線程模型總結

 Boost.Asio 有兩種支持多線程的方式,第一種方式比較簡單:在多線程的場景下,每個線程都持有一個io_service,並且每個線程都調用各自的io_service的run()方法。   另一種支持多線程的方式:全局只分配一個io_

原创 c++11sizeof操作

C++98, sizeof只能對實例的變量或者類的靜態成員進行操作,不能對類的非靜態成員進行操作,若要想達成對類的非靜態成員的操作,可以用如下ugly方式, 0強轉成對象的指針,並解析訪問對應非靜態成員變量。       struct S

原创 linux下用wrk進行http服務器測試

wrk -t 6 -c 15000 -d 20 --latency http://127.0.0.1:9090/test 命令行解釋 -c 15000: 啓動1500個連接 -t 6: 開啓6個線程做壓力測試 -d 2-: 壓測持續20s

原创 vs編譯openssl-1.0.1

前提條件請安裝perl軟件,否則編譯不過   VS2013中編譯openssl的步驟和使用設置一.VS2013中編譯openssl的步驟版本號:openssl-1.0.1e 1.下載 OpenSSL http://www.openssl.

原创 c++簡單實現udp操作和總結

//客戶端 #include <iostream> #include <winsock2.h> #include <wheel/unit.hpp> int main(){     WSADATA wsadata;     WSAStart

原创 vscode配置cmake調試程序

1:cmake 和cmake-tool要安裝 taks.json {     // See https://go.microsoft.com/fwlink/?LinkId=733558     // for the documentati

原创 一個簡單的select的列子說明select內部實現原理

1:select內部是個數組,而epoll內部結構是紅黑二叉樹 2:select查詢起來慢,而epoll查詢起來快 3:每次循環,內部都要發生拷貝(查看相關代碼)而epoll不需要這樣的操作,也就是初始化一次拷貝 #include<ios

原创 插入排序和冒泡排序

插入排序的最好的情況是O(n),最壞的情況O(n^2),因此是穩定的 冒泡排序最好的情況是O(n),最壞的情況O(n^2)因此是穩定的   //插入排序 void insert_sort(int* arr, int n) {     in

原创 二叉樹的遍歷和查找 刪除

//前序 //用廣度搜索 template <class T> void AVLTree<T>::preOrder(AVLTreeNode* tree) const {     /*************遞歸形式走*/     //if