網路套接字(socket)

2021-08-22 03:15:15 字數 2010 閱讀 8836

#include

uint32_t htonl(uint32_t hostlong) //主機位元組序轉網路位元組序

uint32_t htons(uint32_t hostshort)

uint32_t ntohl(uint32_t hostlong) //網路位元組序轉主機位元組序

uint32_t ntohl(uint32_t hostshort)

socket常用api:

#include 

#include

// 建立 socket 檔案描述符 (tcp/udp, 客戶端 + 伺服器)

int socket( int domain, int type, int protocol );

domain:選定乙個協議族(ipv4/ipv6 af_inet表示ipv4)

type:面向資料流還是資料報(sock_dgram面向資料報)

protocol:預設填0

// 開始監聽socket (tcp, 伺服器)

int listen(int socket, int backlog);

// 接收請求 (tcp, 伺服器)

int accept(int socket, struct sockaddr* address, socklen_t* address_len);

address_len:作為輸入是表示傳入的緩衝區的大小(client),作為輸出是它表示客戶端發來的套接字容量有多大;

返回值是乙個檔案描述符;

// 建立連線 (tcp, 客戶端)

int connect(int sockfd, const

struct sockaddr *addr, socklen_t addrlen);

//傳送資料(tcp,客戶端+伺服器)

//如果flags置為0,則等價於write

ssize_t send(int sockfd,const

void* buf,size_t len, int flags);

//傳送資料(tcp/udp,客戶端+伺服器)

//如果dest_addr置為 null , addrlen置為0,則相當於 send

ssize_t sendto(int sockfd, const

void *buf, size_t len, int flags,const

struct sockaddr *dest_addr, socklen_t addrlen);

//接收資料(tcp,客戶端+伺服器)

//如果flags置為0,則等價於read

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

//接收資料(tcp/udp,客戶端+伺服器)

//如果src_addr置為 null , addrlen置為0,則相當於 recv

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);

sockfd:socket

buf:緩衝區

len:緩衝區長度

flags:0

// 繫結端⼝口號 (tcp/udp, 伺服器)

int bind(int socket, const

struct sockaddr *address, socklen_t address_len);

//監聽

int listen(int sock,int backlog)

backlog:不能過長

netstat -nlp 檢視udp的程序

netstat -nlpt 檢視tcp的程序

網路 Socket套接字

socket介面在讀寫資料時,都是按字串的方式接收的,若要傳輸乙個 結構化的資料 就需要使用序列化和反序列化。序列化是將資料由多變到一的過程,反序列化是將資料由一分為多的過程。ip位址唯一標識公網當中的一台主機 埠號唯一標識互聯 定主機上的特定程序。每一對埠號加ip位址能夠唯一標識網路中一台主機上唯...

socket網路套接字

爬蟲的概念 爬蟲的應用 1.資料採集 大資料時代來臨,資料就是核心,資料就是生產力,越來越多的企業開始注重收集使用者資料,而爬蟲技術是收集資料的一種重要手段。2.搜尋引擎 3.模擬操作 爬蟲也被廣泛用於模擬使用者操作,測試機械人,灌水機械人等。爬蟲難點主要分為兩個方向 資料的獲取 網路公共資源都是為...

網路程式設計 Socket 套接字

網路程式設計 目前較為流行的網路程式設計模型是客戶機 伺服器 c s 結構。即通訊雙方一方作為服務 器等待客戶提出請求並予以響應。客戶則在需要服務時向伺服器提出申請。伺服器一般作為 守護程序始終執行,監聽網路埠,一旦有客戶請求,就會啟動乙個服務程序來響應該客 戶,同時自己繼續監聽服務埠,使後來的客戶...