Linux網路程式設計學習筆記 套接字位址結構

2021-09-06 03:29:32 字數 963 閱讀 8226

好久沒有看那linux網路程式設計這本書了,今天看到了重點部分—tcp套接字。下面先來看看套接字的位址結構

linux系統的套接字可以支援多種協議,每種不同的協議都是用不同的位址結構。在標頭檔案中有乙個這樣的老式結構(現在一般不使用這個結夠了)。

;

struct sockaddr_in
;

其中,in_addr這個資料結構:

struct in_addr
;

#define sin6_len
struct sockaddr_in6
;

struct in6_addr
;

好了,看個例子更好說明這些結構體的應用,下面以ipv4為例:

struct sockaddr_in mysock;
mysock.sin_family = af_inet;  //tcp位址結構
mysock.sin_port = htons(3490); //位元組順序轉換函式(後面我會介紹的)
mysock.sin_addr.s_addr = inet_addr("166.111.160.10");//設定ip位址
bzero(&(mysock.sin_zero),8);//設定sin_zero為8位保留位元組
//如果mysock.sin_addr.s_addr = inaddr_any,則不指定ip位址(用於server程式)

一些基本的函式:

格式:

unsigned

long inet_addr(const

char *cp);

char* inet_ntoa(struct in_addr in);

套接字網路程式設計筆記

1.呼叫 int send in socket s,in const char buf,in int len,in int flags 發出的資料報,在傳送過程中,雖然順序不會把打亂,但可能會拆分成多個包,這樣,只呼叫一次 int recv in socket s,out char buf,in i...

套接字網路程式設計筆記

1.呼叫 intsend insockets,inconstchar buf,inintlen,inintflags 發出的資料報,在傳送過程中,雖然順序不會把打亂,但可能會拆分成多個包,這樣,只呼叫一次 intrecv insockets,outchar buf,inintlen,inintfla...

Linux網路程式設計 套接字結構

1,結構體 struct sockaddr,struct sockaddr in,struct in addr 通用套接字資料結構 struct sockaddr實際使用的套接字資料結構,二者可以進行型別轉換 struct sockaddr in struct in addr 2,主機位元組序和網路...