原创 ZooKeeper分佈式協調框架學習總結(1)

ZooKeeper分佈式協調框架1. 爲什麼要用ZooKeeper2. 什麼是ZooKeeper?3. ZooKeeper初探3.1 zkCli命令行3.2 Java API編程4.基本概念和操作4.1 ZooKeeper數據結構

原创 【設計模式】:工廠模式詳解(C++)

1.相關概念 設計模式:設計模式(Design Pattern)是一套被反覆使用、多數人知曉的、經過分類的、代碼設計經驗的總結。 使用設計模式的目的:爲了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。 設計模式使代碼編寫真正

原创 實現一個高併發的內存池

高併發內存池1.什麼是內存池1.1 池化技術1.2 關於內存池2.內存碎片問題2.1 內碎片2.2 外碎片3.爲什麼要使用內存池4.三種內存池的演變4.1 最簡單的內存分配器4.2 定長內存分配器4.3 Hash映射的多種定長內存分配

原创 基於boost文檔的小型搜索引擎

基於boost文檔的小型搜索引擎 項目背景: 在使用boost的官方網站去查詢一些知識的時候,發現該網站沒有搜索框,我們不能很快速的定位到鎖需要的文檔,所以基於這個背景實現了一個簡單的boost文檔搜索框。 項目模塊及每個模塊的功能:

原创 基於CGI協議的HTTP服務器

本項目主要實現一個HTTP服務器的框架結構,爲了瞭解HTTP服務器的工作流程,下面實現一個多線程版本的HTTP服務器框架,採用CGI協議來進行程序替換完成主要業務,主要支持GET和POST方法。 關於HTTP協議: https://b

原创 基於UDP和環形隊列實現的多人聊天室

暢聊系統1.多人聊天系統功能簡介2.項目使用的第三方庫3.多人聊天系統的原理圖4.服務器維護的在線列表5.使用ncurses庫繪製客戶端6.序列化和反序列化7.客戶端退出問題8.項目存在的問題9.項目擴展10.項目源碼 1.多人聊天系

原创 數據鏈路層詳解

數據鏈路層 主要功能:用於兩個設備(同一種數據鏈路節點)之間進行信息傳遞。 網絡層和數據鏈路層對比: 網絡層是進行地址管理和路由選擇的,它是爲數據報的轉發找出一條路來,而數據鏈路層解決的是兩個結點直接的數據交換,數接近於物理層的概念。

原创 DNS技術和NAT技術詳解

DNS技術和NAT技術詳解一.DNS(Domain Name System)1.什麼是DNS2. 瞭解域名3.域名解析過程4.使用dig工具分析DNS過程5.瀏覽器輸入URL後發生什麼事?二.ICMP協議1.ICMP功能2.ICMP報

原创 網絡層IP協議詳解

網絡層IP協議詳解一.IP地址1.基本概念2.IP協議頭格式3.網段劃分4.五類IP和CIRD塊5.特殊的IP地址6.IP地址的數量限制二.私有IP地址和公有IP地址1. 什麼私有IP地址和公有IP地址2.路由器3.路由4.路由表

原创 五種IP模型及IO多路轉接詳解

五種IP模型及多路轉接詳解1.五種IO模型2.非阻塞IO(fcntl)3.I/O多路轉接之select4.I/0多路轉接poll5.I/O多路轉接epoll 1.五種IO模型 阻塞IO模型:調用IO系統調用的進程會一直阻塞,直到內

原创 TCP和UDP詳解(非常詳細)

TCP和UDP詳解 計算機網絡知識掃盲:https://blog.csdn.net/hansionz/article/details/85224786 網絡編程套接字:https://blog.csdn.net/hansionz/ar

原创 詳解TCP三次握手和四次揮手過程及常見面試題

詳解TCP三次握手和四次揮手過程及常見面試題

原创 http協議詳解及簡單的http服務器實現

http協議及簡單的http服務器的實現1.網絡協議及網絡版計算機實現2.HTTP協議2.1 URL2.2 Http協議報文2.3 Http請求的方法2.4 HTTP的狀態碼2.5 HTTP消息報頭3.GET和POST方法的區別4.實

原创 【C++】:智能指針詳解

智能指針詳解 前言:本篇博客介紹C++中的四個智能指針auto_ptr、shared_ptr、weak_ptr、 unique_ptr。其中,auto_ptr存在很大的缺陷,被C++11棄用。 我們爲什麼要使用智能指針呢? C++的內

原创 【Socket】:實現一個簡單通用的Tcp和Udp服務器及客戶端

前言:本篇博客利用Socket API實現一個簡單通用的Tcp及Udp服務器及客戶端。並且將Tcp版本的服務器改爲多進程版本和多線程版本以及引入線程池。 網絡編程套接字:https://blog.csdn.net/hansionz/a