struct sockaddr_in ;
sin_family指代協議族,在socket程式設計中只能是af_inet
sin_port儲存埠號(使用網路位元組順序)
sin_addr儲存ip位址,使用in_addr這個資料結構
sin_zero是為了讓sockaddr與sockaddr_in兩個資料結構保持大小相同而保留的空位元組。
sin_addr按照網路位元組順序儲存ip位址
sockaddr_in和sockaddr是並列的結構,指向sockaddr_in的結構體的指標也可以指向sockaddr的結構體,並代替它。也就是說,你可以使用sockaddr_in建立你所需要的資訊,然後用進行型別轉換就可以了
bzero((char*)&mysock,sizeof(mysock));//初始化
sockaddr_in mysock;
bzero((char*)&mysock,sizeof(mysock));
mysock.sa_family=af_inet;
mysock.sin_port=htons(1234);//1234是埠號
mysock.sin_addr.s_addr=inet_addr("192.168.0.1");
上面我們提到sockaddr,現在我也簡單的說一下
struct sockaddr ; sa_family是位址家族,一般都是「af_***」的形式。通常大多用的是都是af_inet,代表tcp/ip協議族。 sa_data是14位元組協議位址。 這個資料結構用做bind、connect、recvfrom、sendto等函式的引數,指明位址資訊。但一般程式設計中並不直接針對此資料結構操作,而是使用另乙個與sockaddr等價的資料結構,就是我們上面提到的sockaddr_in;
上面我們還提到了乙個資料結構struct in_addr sin_addr,這裡也簡單的介紹一下
typedef struct in_addr s_un_b;
struct s_un_w;
struct s_un;
} in_addr;
結構體in_addr 用來表示乙個32位的ipv4位址.
in_addr_t 一般為 32位的unsigned long.
其中每8位代表乙個ip位址位中的乙個數值.
例如192.168.3.144記為0xc0a80390,其中b1 為192 ,b2 為 168, b3 為 3 , b4 為 144
IOS開發之檢視網路鏈結是否可用
在ios開發中我們經常用到網路,網路是不可或缺的,有網路連線和沒有網路連線的時候進行不同的處理,斷點續傳等等都離不開網路檢測。今天我自己簡單的做了乙個demo,用乙個函式封裝網路檢測 bool networki istence bool flagsreachable flags kscnetwork...
IOS開發之 網路應用
nsdata foundation nsurl nsurlrequest nsurlconeection nsnetservice nsnetservicebrowser core foundation cfnetwork cfnetservice bsd sockets 1 獲取 nsdata d...
ios開發之網路基礎
1 網路訪問的步驟 1 建立nsurl 2 建立nsurlrequest 3 建立nsurlconnection 4 開始連線 1 void viewdidload 2 5 通過 nsurlconnectiondatadelegate方法處理網路請求的資料 1 伺服器響應,表示伺服器處理完成請求,準...