04 TCP套接字之bind的函式

2021-09-11 03:16:51 字數 1388 閱讀 5609

前面介紹了socket函式, 本節介紹bind函式. 該函式是網路通訊時服務端必不可少的函式.

函式原型

bind函式把乙個本地協議位址賦予乙個套接字.

#include

intbind

(int sockfd,

const

struct sockaddr *addr, socklen_t addrlen)

;

成功 : 返回0.

失敗 : 返回-1.

函式引數

函式呼叫

int ret;

struct sockaddr_in sockaddr;

bzero

(&sockaddr,

sizeof

(sockaddr));

// 全部填0

sockaddr.sa_family = af_inet;

// 設定域

sockaddr.sin_port =

htons

(port)

;// 繫結埠

sockaddr.sin_addr.in_addr =

inet_addr

(addr)

;// 繫結位址

int sockfd =

socket

(af_inet, sock_stream,0)

;ret =

bind

(sockfd,

(struct sockaddr*

)&sockaddr_in,

sizeof

(sockaddr_in));

if(ret <0)

if(errno == eaddrinuse)

exit

("port impropriate");

else

exit

("bind"

);

如果想要驗證埠被繫結和位址已被使用, 可以使用這裡**來驗證bind_error.c . 請將**中的ip位址寫成自己本機的ip位址.

首先來驗證位址已被使用, 將**中的62行注釋掉, 接著在兩個不同的終端呼叫該程式, 得到的結果就是 :

然後驗證埠已被繫結的錯誤, 將62行注釋取消, 直接執行一次程式, 結果如下 :

總結

chapter04 基本TCP套接字程式設計

chapter 04 傳輸層 基本tcp套接字程式設計 相對於書而言,內容沒有什麼價值。書上的內容全面可靠。必要的內容放在正文中。相對而言非主線的內容放在附錄中。這兩個集合之外的內容,可能沒有寫出,或者隨它而去。為了好看增加顏色標識。提問內容顏色標識 綠色 重點程度顏色標識 紅色 藍色 黑體。csd...

TCP的套接字

摘自 深入理解計算機網路 王達著 機械工業出版社 1.ipv4資料報頭部格式 2.ipv6資料報頭部格式 3.ipv4資料報的封裝與解封裝 4.ipv4資料報的分段與重組 5.arp協議報文格式及arp表 6.arp位址解析原理 7.icmp協議及報文格式 8.ipv6協議族的其它協議 9.tcp的...

08 TCP套接字之通訊

前面介紹了與套接字相關的函式,本節就來運用這些函式實現乙個簡單的網路通訊吧.回射思路 回射,將客戶端傳送過來的所有資料全部原封不動的傳送回去.可以使用write和read函式來實現,客戶端使用write函式向套接字中寫資料,對端用read函式讀資料並呼叫write函式又將資料寫回套接字,客戶端最後使...