Linux網路程式設計之socket技術

2021-10-12 13:23:01 字數 1332 閱讀 1033

**

套接字,是一種接**術,它封裝了tcp/ip通訊協議,使用它可以讓計算機之間通過網路傳輸資料,所有的作業系統使用的都基於socket的介面進行網路通訊的。

不光可以用於網路間通訊,還可以用於程序間通訊,或者可以網路通訊理解為不同計算之間的程序間通訊。

其實是一種記憶體物件,以描述符的形式呈現,傳送資料即寫檔案,接收資料讀檔案。

int

socket

(int domain,

int type,

int protocol)

;功能:建立乙個socket物件

domain:位址域,什麼型別的位址

af_unix, af_local 接收下將使用路徑位址進行程序間通訊

af_inet 使用ipv4位址進行網路通訊

af_inet 使用ipv6位址進行網路通訊

type:

sock_stream 使用資料流進行通訊 tcp

sock_dgram 使用資料報通訊 udp

protocol:

特殊的通訊協議,一般不用,寫0即可。

返回值:成功返回socket描述符,失敗返回-

1。

基本位址

struct sockaddr

本地型別位址

struct sockaddr_un;

網路型別位址

struct sockaddr_in;

ip位址

struct in_addr ;

位址位元組序轉換成網路位元組序

uint32_t htonl

(uint32_t hostlong)

;uint16_t htons

(uint16_t hostshort)

;uint32_t ntohl

(uint32_t netlong)

;功能:把網路位元組序的4位元組整數轉換成本地位元組序

uint16_t ntohs

(uint16_t netshort)

;功能:把網路位元組序的2位元組整數轉換成本地位元組序

ip位址轉換

in_addr_t inet_addr

(const

char

*cp)

;char

*inet_ntoa

(struct in_addr in)

;

Linux網路程式設計之廣播

1.概念 前面介紹的tcp,udp都是單播方式,即一對一.而廣播是一台主機向區域網內的所有主機傳送資料。這時,同一網段的所有主機都能接收到資料。傳送廣播包的步驟大致如下 1 確定乙個傳送廣播的介面,如eth0 2 確定廣播的位址,通過ioctl函式,請求碼設定為siocgifbrdaddr得到廣播的...

Linux網路程式設計之廣播

1.概念 前面介紹的tcp,udp都是單播方式,即一對一.而廣播是一台主機向區域網內的所有主機傳送資料。這時,同一網段的所有主機都能接收到資料。傳送廣播包的步驟大致如下 1 確定乙個傳送廣播的介面,如eth0 2 確定廣播的位址,通過ioctl函式,請求碼設定為siocgifbrdaddr得到廣播的...

linux網路程式設計之Socket

一.socket socket可看作是使用者程序與核心網路協議的程式設計介面.socket可用於本機程序間的通訊,也可用於網路上不同主機間的程序通訊.下圖顯示的是各種網路協議的位址格式 1.struct socketaddr 通用位址結構 通過獲取某種socketaddr結構體的首位址,不需要知道具...