網路程式設計中的bind 函式

2021-10-03 22:25:22 字數 1608 閱讀 8769

一、作用

給我們的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函式

摘要 在套介面中,乙個套接字只是使用者程式與核心互動資訊的樞紐,它自身沒有太多的資訊,也沒有網路協議位址和埠號等資訊,在進行網路通訊的時候,必須把乙個套接字與乙個位址相關聯,這個過程就是位址繫結的過程。許多時候核心會我們自動繫結乙個位址,然而有時使用者可能需要自己來完成這個繫結的過程,以滿足實際應用...