前面介紹了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函式又將資料寫回套接字,客戶端最後使...