原创 【grpc】內存分配封裝

grpc cpp的內存相關封裝 內存分配 封裝了好幾種malloc方法,可選? static gpr_allocation_functions g_alloc_functions = {malloc, zalloc

原创 【算法】【sort 2.2.1】歸併排序

分治法代表 遞歸 sort + merge labuladong 排序過程 [Running] g++ test_sort_guibing_2.2..1.cpp -std=c++14 -o test_sort_guib

原创 【粗讀webrtc】 jitterbuffer1: VCMJitterBuffer

VCMJitterBuffer VCMJitterBuffer 是JB的核心類了把 2019年的版本,webrtc已經不用這個機制了??? JB的操作,實際上是圍繞 decodable_frames_,incomplete_fra

原创 【MBP】macos 中使用 wintogo 安裝 win10到NVME,然後虛擬機引導啓動

設備掛載到win10 虛擬機的方法 win to go github開源的cs工程 5.42 版本 win10 專業版 企業版會藍屏 因爲我沒有usb 轉typec 所以我只能用mac 虛擬機 虛擬一個windows

原创 ns_turn_khash.h

khash.h in cpp khash.hpp khash.h : 基於多重散列(double hashing)的散列類 #ifndef KHASH_HPP #define KHASH_HPP #include <memor

原创 windows10 vs2019 遠程ubuntu 生成並運行ACoturn

上一篇 cmake已經ok了,很多庫都安裝了 現在構建coturn 實際運行效果 添加了一個cpp文件 調用c的main方法 ninja +clang 與gcc 不同的,生成的位置不是cmake-build這樣的 vs 生成的

原创 【ICE】coturn 使用CMake方式引入spdlog預編譯庫

coturn引入spdlog coturn默認日誌是寫文件/var 目錄 替換coturn默認日誌爲spdlog,直接控制檯打印,以後也可以寫入日誌 spdlog還是很好用的,我自己的項目都用。 c 調用c++ spdlog庫、l

原创 【ICE】構建cmake工程: coturn 集成libevent2

coturn cmake工程構建 coturn是p2p ICE裏核心關鍵的一環,市面上還沒有cmake構建的coturn 使用cmake構建,更容易理解程序的代碼分佈和整體結構 clion + cmake 更方便操控libeven

原创 [zz] WebRTC 之ICE 流程

turn stun ice 協議 ,包括了好幾個rfc 開源的sip協議棧 resiprocate,也支持ice stun turn ,但好像用coturn的最多 知道協議的內容/流程,才能看懂 服務端代碼 這個時候,這種科普的

原创 visual studio 2019 遠程ubuntu18.04 使用clang 構建 coturn

clion 遠程linux 是可行的,這個我已經在ubuntu上試過了 clion會通過ssh ftp什麼的協議,在遠程linux上創建一個臨時目錄 當然,這個目錄是可以讓你來配置的,也可用默認的 然後可以debug 遠程,遠程

原创 windows打印GetLastError

DWORD winErr = GetLastError(); std::string Error(DWORD dwErr) { char buff[512]; DWORD systemLocale = MAKE

原创 【UML】一個升級程序的類圖看升級程序等功能

優秀的研發人員首先是一個設計師 cpp的開發離不開面向對象 java這種高級語言更是抽象封裝的提現 本文以自己遇到的一個升級程序爲例,說說UML 圖解 設計模式 UML 裏用到的幾種關係 -<> 抽象類 帶空心箭頭的虛線 表示

原创 【ICE 】 coturn :開源TURN and STUN Server 實現

coturn webrtc 使用coturn作爲ICE 服務器 通過ICE 可以基於DTLS 作音視頻傳輸 原生p2p 技術 源於rfc5766 turn server 的代碼 This project evolved from

原创 [zz] P2P通信原理與實現

P2P通信原理與實現 轉載這位大神 前言 當今互聯網到處存在着一些中間件(Middle Boxes),如NAT和防火牆,導致兩個(不在同一內網)中的客戶端無法直接通信. 這些問題即便是到了IPV6時代也會存在,因爲即使不需要NA

原创 【libevent2】最小堆和libevent2的實現

libevent2 的最小堆 labuladong 最小堆 一顆完全二叉樹 每個根節點都比自己的葉子小 左、右(如果有) 葉子之間沒有大小關係 具體對外api 有 插入、刪除(根據啥來刪除呢?位置索引?)、獲取最優(就是根節點)