一、作用
給我們的socket繫結埠號與具體位址
二、樣子
int
bind
( socket s,
const sockaddr *addr,
int namelen
);
s三、引數標識未繫結套接字的描述符。
addr
待定namelen
名稱引數所指向的值的長度(以位元組為單位)。
示例
bind
(sky_server,
(const
struct sockaddr *
)&sky1,
sizeof
(sky1)
);
引數1
引數2(重點)
struct sockaddr
;struct sockaddr_in
;
bind 函式第二個引數需要乙個sockaddr結構體,因此需要先定義這個結構體,並且結構體中的內容很關鍵,包含埠號、ip位址
//定義乙個sockaddr結構體
struct sockaddr_in sky1;
sky1.sin_family = af_inet;
//協議型別,ipv4
sky1.sin_port =
htons
(12345);
//埠號
sky1.sin_addr.s_un.s_addr =
inet_addr
("127.9.0.1");
//ip位址
對埠號的說明:
乙個0~65535的值,其中0~1023為系統保留占用埠,在輸入埠號前用「htons」將數值標準化代表這個數字為埠號
不同應用埠號不可以重複
如何檢視埠號有沒有被占用:開啟執行cmd,輸入
netstat -ano檢視被使用的所有埠
輸入
netstat -aon|findstr 「12345」檢查埠號是否被使用,被使用就顯示使用的程式,未被使用就啥都不顯示
iinet_addr(「127.9.0.1」)也是將相應的ip位址改為其可認識的格式
引數3輸入引數2的大小,直接用:
sizeof
(sockaddr_in)
四、返回值int a =
bind
(sky_server,
(const
struct sockaddr *
)&sky1,
sizeof
(sky1));
//檢查返回值
if(a == socket_error)
TCP IP網路程式設計 bind函式
struct sockaddr in serv addr bind serv sock,struct sockaddr serv addr,sizeof serv addr 其中兩個結構體定義如下 struct sockaddr in sa family t sin family 位址族 uint1...
網路程式設計socket之bind函式
摘要 在套介面中,乙個套接字只是使用者程式與核心互動資訊的樞紐,它自身沒有太多的資訊,也沒有網路協議位址和 埠號等資訊,在進行網路通訊的時候,必須把乙個套接字與乙個位址相關聯,這個過程就是位址繫結的過程。許多時候核心會我們自動繫結乙個位址,然而有時用 戶可能需要自己來完成這個繫結的過程,以滿足實際應...
網路程式設計socket之bind函式
摘要 在套介面中,乙個套接字只是使用者程式與核心互動資訊的樞紐,它自身沒有太多的資訊,也沒有網路協議位址和埠號等資訊,在進行網路通訊的時候,必須把乙個套接字與乙個位址相關聯,這個過程就是位址繫結的過程。許多時候核心會我們自動繫結乙個位址,然而有時使用者可能需要自己來完成這個繫結的過程,以滿足實際應用...