原创 Linux(二十九)淺析數據鏈路層

用於兩個設備(同一種數據鏈路節點)之間進行傳遞 以太網 *“以太網”不是一種具體的網絡,而是一種技術標準;既包含了數據鏈路層的內容,也包含了一些物理層的內容。 *以太網是當前應用最廣泛的局域網技術;和以太網並列的還有令牌環網,無線LAN

原创 Linux(二十八)淺析網絡層協議(IP)

基本概念 主機:配有IP地址,但是不進行路由控制的設備; 路由器:既配有IP地址,又能進行路由控制; 節點:主機和路由器的統稱; 協議頭格式 *四位版本號:指定IP協議的版本,對於IPv4來說,就是4。 *四位首部長度:IP頭部的

原创 Linux(二十五)TCP的可靠性體現

TCP保證可靠性的方式 *校驗和 *序列號 *確認應答 *超時重發 *連接管理 *流量控制 *擁塞控制 校驗和 TCP校驗和是一個端到端的校驗和,由發送端計算,然後由接收端驗證,其目的就是爲了發現TCP首部和數據在發送端到接收

原创 C++(四)類和對象-默認的成員函數

隱含的this指針 1.每個成員函數都有一個指針形參,它的名字是固定的,稱爲this指針,this指針是隱式的。 2.編譯器會對成員函數進行處理,在對象調用成員函數的時候,對象地址作爲實參傳遞給成員函數的第一個形參this指針。 3.

原创 Linux(二十四)TCP的三次握手與四次揮手

三次握手 服務器在開始的時候,調用socket()函數分配一個文件描述符,然後是填充本地sockaddr_in結構體信息,綁定分配的文件描述符和服務器地址端口,下面就開始建立監聽描述符,調用listen函數,使剛纔的文件描述符成爲一個監

原创 C++(一)初識C++

C++發展歷史 語言的發展是一個逐步遞進的過程,C++ 是直接從 C 語言發展過來的,而 C 語言是從 B 語言發展過來的,B 語言是 BCPL 的一個解釋性後代,BCPL 是 Basic CPL。其中最有趣的是 CPL 中 C 的由來,

原创 C++(三)類和對象概念及定義

面向對象程序設計 概念:是一種程序設計泛型,同時也是一種程序開發的方法。 對象指的是類的實例,將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性,靈活性,和擴展性。 C++不是純面嚮對象語言,而是基於面嚮對象語言,因爲包

原创 Linux(二十二)淺析應用層協議HTTP

HTTP協議格式 HTTP請求 ·首行:【方法】+【url】+【版本】 ·Header:請求的屬性,冒號分割的鍵值對;每組屬性之間使用\n分隔;遇到空行表示Header部分結束 ·Body:空行後面的內容都是Body,Body允許

原创 Linux(二十)編寫簡單的TCP服務器(多進程版本)

上一篇我們講的TCP服務器的簡單實現是隻有一個進程連接的情況,但是實際上,這是不現實的,所以我們要改進我們的程序,使其可以服務於多個進程 直接上代碼 server.c #include <stdio.h> #include <sys/s