原创 recv & send

socket通信中,客戶端服務器可以使用recv & send進行數據收發。 #include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t nbytes, i

原创 GUN make (3) Makefile的規則

1. 依賴的類型 GUN make中存在兩種類型的依賴: 常規依賴:依賴文件中任何一個比目標文件新,則認爲規則的目標過期需要重建。 order-only依賴:當order-only依賴中的文件更新時,若目標不存在,則生成目標; 若目標存在

原创 ISS queue 實現

點擊放大圖片 

原创 GUN make (7) 執行make

1. 替代命令的執行 在某些時候,並不希望更新那些已經過期的目標文件(比如只是檢查更新目標的命令是否正確,或者查看那些目標需要更新)。 可以通過一些特定的參數限定make執行的動作,來替代make默認動作的執行。 -n --just-

原创 ISS HTTP socket 編程學習

 以下根據ISS code HTTP 總結socket編程,點擊可以放大。

原创 fork併發服務器

併發服務器需要使用fork進行實現,其是unix中派生新進程的唯一方法。   fork函數定義 #include <unistd.h> pid_t fork(void); 調用fork一次,返回兩次: 在調用進程(父進程)中返回一次,返

原创 getsockname 和 getpeername

getsockname函數用於獲取與某個套接字關聯的本地協議地址 (ip 和 port) getpeername函數用於獲取與某個套接字關聯的外地協議地址 (ip 和 port) 定義如下: #include<sys/socket.h>

原创 readv & writev

readv和writev特點在於允許單個系統調用讀入到或者寫出自一個或多個緩衝區。這些操作分別稱爲分散讀和集中寫。 因爲來自讀操作的輸入數據被分散到多個應用緩衝區中,而來自多個應用緩衝區的輸出數據則被集中提供給單個寫操作。 ssize

原创 計算機網絡 -- 運輸層(3)TCP流量控制與擁塞控制

1.流量控制 TCP提供流量控制服務,以消除發送方使接收方緩存溢出的可能。其就是一個速度匹配服務,即發送方的發送速率與接收方應用程序讀取速率匹配。 TCP讓發送方維護一個接受窗口變量來提供流量控制,接受窗口用於給發送方一個指示:該接收方還

原创 計算機網絡 -- 運輸層(1)TCP和UDP基礎

1.運輸層與網絡層關係 網絡層(IP)實現了不同主機之間的通信。 運輸層(TCP/UDP)實現了不同主機上的進程之間的通信(通過端口號實現)。 2.TCP實現可靠傳輸方法 流量控制,序號,確認,定時器 3.多路複用/分解 多路分解:將運輸

原创 ISS code RBTree

以下根據ISS code RBTree實現總結,點擊可以放大   

原创 計算機網絡 -- 網絡層(2)網絡地址轉換NAT

NAT使得路由器對於外部世界來說就像一個具有一個單一地址的單一設備。從本質上來講,NAT使得路由器對外界隱藏了家庭網絡的細節。     所有離開家庭路由器流向因特網的報文都擁有一個源IP地址138.76.29.7; 所有進入家庭的報文都

原创 GUN make (8) make的隱含規則

隱含規則爲make提供了一類目標文件通用方法,不需要在makefile中明確的給出重建特定目標文件所需的細節描述。 只要目標文件中除後綴以外其他部分相同,make都能夠使用若干隱含規則來最終產生這個目標文件。   對應關係: EXENAM

原创 GUN make (9) make的靜態庫文件

靜態庫文件也稱爲 文檔文件, 是由一些 .o 文件的集合。 在linux中使用工具 ar 對其進行維護管理。   1. 庫成員作爲目標 庫成員作爲目標時,使用如下格式: ARCHIVE(MEMBER)     #表示庫ARCHIVE的成員