socket編程bind()函數


#include <sys/socket.h>

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

bind()函數功能

將address指向的sockaddr結構體中描述的一些屬性(IP地址、端口號、地址簇)與socket套接字綁定,也叫給套接字命名。

調用bind()后,就為socket套接字關聯了一個相應的地址與端口號,即發送到地址值該端口的數據可通過socket讀取和使用。當然也可通過該socket發送數據到指定目的。

對於Server,bind()是必須要做的事情,服務器啟動時需要綁定指定的端口來提供服務(以便於客戶向指定的端口發送請求),對於服務器socket綁定地址,一般而言將IP地址賦值為INADDR_ANY(該宏值為0),即無論發送到系統中的哪個IP地址(當服務器有多張網卡時會有多個IP地址)的請求都采用該socket來處理,而無需指定固定IP。

對於Client,一般而言無需主動調用bind(),一切由操作系統來完成。在發送數據前,操作系統會為套接字隨機分配一個可用的端口,同時將該套接字和本地地址信息綁定。

關於套接字更詳細的使用,可參考:

一個草率的采用UDP協議的CS模型Demo:GitHub傳送

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM