原创 《Redis設計與實現》第2章 簡單動態字符串(SDS)

    Redis自己構建了一種名爲簡單動態字符串(simpledynamic string, SDS)的抽象類型,並將SDS用作Redis的默認字符串表示。    Redis中,C字符串(以空字符結尾的字符數組)只會作爲字符串字面量(s

原创 《TCP/IP網絡編程》第14章 多播與廣播

本章所有示例代碼>>gtihub向大量客戶端發送相同數據時,可以使用多播技術解決。14.1 多播    多播(Multicast)方式的數據傳輸是基於UDP完成的。區別在於,UDP數據傳輸以單一目標進行,而多播數據同時傳遞到加入(註冊)特

原创 《Redis設計與實現》第6章 整數集合(intset)

       整數集合(intset)是集合鍵的底層實現之一,當一個集合只包含整數值元素,並且這個集合的元素數量不多時,Redis就會使用整數集合作爲集合鍵的底層實現。 6.1 整數集合的實現        整數集合(intset)是Re

原创 《TCP/IP網絡編程》第12章 I/O複用

 本章所有示例代碼>>github12.1 基於I/O複用的服務器端1.       多進程服務器端的缺點    爲了構建併發服務器,只要有客戶端連接請求就會創建新進程。這的確是實際操作系統中採用的一種方案,但並非十全十美,因爲創建進程時

原创 《TCP/IP網絡編程》第9章 套接字的多種可選項

本章所有示例代碼>>github套接字具有多種特性,這些特性可通過可選項更改。9.1 套接字可選項和I/O緩衝1.       套接字的多種可選項    由上表看出,套接字可選項是分層的。IPPROTO_IP層可選項是IP協議相關事項,I

原创 《TCP/IP網絡編程》第8章 域名(DNS)及網絡地址

本章所有示例代碼>>github8.1 域名系統    DNS(DomainName System,域名系統)是對IP地址和域名進行相互轉換的系統,其核心是DNS服務器。    域名是賦予服務器端的虛擬地址,而非實際地址。因此,需要將虛擬

原创 《TCP/IP網絡編程》第16章 關於I/O流分離的其他內容

本章所有示例代碼>>gtihub    調用fopen函數打開文件後可以與文件交換數據,因此說調用fopen函數後創建了“流”(Stream)。此處的“流”是指“數據流動”,但通常可以比喻爲“以數據收發爲目的的一種橋樑”。16.1 分離I

原创 《TCP/IP網絡編程》第15章 套接字和標準I/O

本章所有示例代碼>>gtihub15.1 標準I/O函數的優點    fopen、feof、fgets、fputs函數等。1.       標準I/O函數的兩個優點標準I/O函數具有良好的移植性(Portability)(ANSIC)標準

原创 《TCP/IP網絡編程》第10章 多進程服務器端

本章所有示例代碼>>github10.1 進程概念及應用1.       兩種類型的服務器端    按序處理客戶端請求,如果每個客戶端的平均服務時間爲0.5秒,則第100個客戶端會對服務器產生相當大的不滿。    所有連接請求的受理時間不

原创 《TCP/IP網絡編程》第13章 多種I/O函數

本章所有示例代碼>>github13.1 send & recv函數1.       Linux中的send & recv函數#include <sys/socket.h> ssize_t send(int sockfd, const v

原创 《TCP/IP網絡編程》第7章 優雅地斷開套接字連接

  本章所有示例代碼>>github 7.1 基於TCP的半關閉 1.       單方面斷開連接帶來的問題     Linux的close函數(Windows的closesocket函數)意味着完全斷開連接。完全斷開連接不僅指無法傳輸數

原创 《TCP/IP網絡編程》第5章 基於TCP的服務器端/客戶端(2)

5.1 回聲客戶端的完美實現1.       回聲服務器端沒有問題,只有客戶端有問題。    回聲客戶端傳輸的是字符串,而且是通過調用write函數一次性發送的,之後還調用一次read函數,期待着接收自己傳輸的字符串。2.       回

原创 《TCP/IP網絡編程》第11章 進程間通信

 本章所有示例代碼>>github11.1 進程間通信的基本概念    進程間通信(InterProcess Communication,IPC)意味着兩個不同進程間可以交換數據,爲了完成這一點,操作系統中應該提供兩個進程可以同時訪問的內

原创 《TCP/IP網絡編程》第6章 基於UDP的服務器端/客戶端

本章所有示例代碼>>github6.1 理解UDP1.       UDP套接字的特點    信件的例子。(無法確認對方是否收到、可能發生信件丟失)    UDP在結構上比TCP更簡潔,UDP不會發送類似ACK的應答消息,也不會像SEQ那