網路程式設計 socket套接字的使用(一)

2021-07-24 09:26:13 字數 1571 閱讀 2014

1、socket函式

函式的作用:建立乙個新的socket套接字

函式的原型:int socket(int domain,int type,int protocol)

type:sock_stream:tcp,面向資料流的;sock_dgram:udp,使用不連續不可信賴的資料報連線

protocol:傳輸協議編號,設為0即可

標頭檔案:#include

返回值:成功:返回socket套接字描述符;出錯:-1;

2、bind函式

函式的原型:int bind(int sockfd,struct sockaddr *my_addr,int addrlen)

引數:sockfd:socket套接字描述符

其中struct sockaddr_in

unsigned short int sin_family;

uint16_t sin_port;//埠號

struct in_addr sin_addr;//ip位址

unsigned char sin_zero[8];//未使用

struct in_addr

uint32_t s_addr;

標頭檔案:#include

#include

返回值:成功:0;出錯:-1

3、connect函式

函式的作用:建立socket連線,通常客戶端連線伺服器使用

函式的原型:int connect(int sockfd,struct sockaddr *serv_addr,int addrlen)

addrlen:struct sockaddr的長度

返回值:成功:0;出錯:-1

4、listen函式

函式的作用:聆聽網路,等待連線

函式的原型:int listen(int sockfd,int backlog)

引數:sockfd:描述符

backlog:允許接入的客戶端的數目

返回值:成功:0;出錯:-1;

注意:listen並沒有連線,只是設定socket的listen模式而已,真正連線的是accept

5、accept函式

函式的作用:接收網路連線,客戶端連線,三次握手在這個地方

函式的原型:int accept(int sockfd,struct sockaddr *addr,int *addrlen)

addrlen:struct sockaddr的長度

6、send函式

函式的作用:經過socket傳送資料;向對方傳送資料

函式的原型:int send(int sock_fd,void *msg,int len,int *addrlen)

返回值:成功:返回新的sock_fd;出錯:-1

7、recv函式

函式的作用:經過socket接收資料

函式的原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)

函式的引數:sock_fd:accept以後的socket套接字描述符

len:接收資料的最大長度

返回值:成功:接收的位元組數;出錯:-1 等

網路程式設計 Socket 套接字

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

網路程式設計socket套接字

socket 建立乙個socket,主動套介面。bind 繫結ip和埠號到socket,需先配置ip 埠號。connect 客戶機 client 端和伺服器傳送請求建立連線。listen 伺服器 serv 監聽client傳送的請求。accept 完成連線,阻塞響應。sendto 傳送資料 recv...

網路程式設計 Socket套接字

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