tcpip基本資料結構講解

2021-07-26 09:59:52 字數 1595 閱讀 7318

傳智掃地僧課程學習筆記。

ipv4套介面位址結構

ipv4

套介面位址結構通常也稱為

「網際套接字位址結構

」,它以「

sockaddr_in

」命名,定義在標頭檔案中

struct sockaddr_in

else

return 0;

}我的電腦輸出為 78,56,34,12

man 3 htonl,得到這些結果,

#include

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

h代表host;n代表network s代表short;l代表long,不過從後面uint32就可以大概看出來,

在上面**的基礎上,加上它,來使用系統提供的大小端轉換函式,

uint32_t mynetdata = htonl( data);

p = &mynetdata;

printf("%x,%x,%x,%x\n", p[0], p[1], p[2], p[3] );

轉換為網路位元組序,輸出結果為 12,34, 56, 78

ip位址涉及到兩種形式,

一種是我們平常常見的,即 192.168.0.1,另一種是計算機裡面的32位bit的形式,

因此就涉及到兩種形式的轉換,

位址轉換函式

#include

#include

int inet_aton(const char *cp,struct in_addr *inp);

in_addr_t inet_addr(const char*cp);

char *inet_ntoa(struct in_addr in);

這幾個函式,我是這樣看的,

const代表輸出引數,而struct _addr又是我們之前講到過的ip位址結構體,

第乙個函式的返回值,沒有猜錯的話,就是用來說明函式執**況的,

char *型別,結合man文件,很容易想到是字串型別的ip位址表示"192.168.0.1";

struct sockaddr_in ;

/* internet address. */

struct in_addr ;

第二個結構體定義的in_addr被用於第乙個結構體中的元素,

int main()

輸出結果為:

3724978368

3724978368

192.168.6.222,

老師說第三個函式,請深刻理解為什麼不傳入指標,而是元素,

/* 上面第二個示例**,

究竟是定義指標,還是直接定義實體?

指標的話,你還得去分配記憶體,

實體的話,就相當於已經分配了記憶體,

但是位址得顯示引用

*/

opencv基本資料結構

iplimage 首先介紹重要的成員變數 width和height表示了的尺寸。其次是depth和nchannels,depth是指畫素顏色的取值範圍,nchnannels為影象的通道,可以取1,2,3,4 origin變數定義了影象的原點,有兩個取值,分別是ipl origin bl和ipl or...

Python 基本資料結構

列表是python裡的內建的型別之一,可以新增和刪除其中的元素。如 role sam 33 dean 37 可以列表中包含列表,同一列表中包含不同型別的資料。下面介紹列表的一些通用操作,關於list的其他用法,可以通過help list 檢視。a 2,13,12,41,17,23 a 1 列表從0開...

基本資料結構定義

定義 棧是一種只能在一端進行插入或刪除操作的線性表。表中允許進行插入 刪除操作的一端稱為棧頂。棧頂的當前位置是動態的,棧頂的當前位置由乙個稱為棧頂指標的位置指示器指示。表的另一端稱為棧底。當棧中沒有資料元素時,稱為空棧。棧的插入操作通常稱為進棧或入棧,棧的刪除操作通常稱為退棧或出棧。特點 後進先出 ...