wisock尋址

winsock第一個版本使用sockaddr來強迫使用特定的尋址方式,這樣添加其餘的協議就不可能了函數

1 struct sockaddr 2 { 3     u_short sa_family;//地址家族
4     char sa_data[14];//不一樣的地址家族,不一樣
5 };

在winscok中 應用程序經過SOCKADDR_IN結構來指定IP地址和端口號spa

1 struct scockaddr_in{ 2     short sin_family;//地址家族
3     u_short sin_port;//端口號
4     struct in_addr sin_addr;//IP地址
5     char sin_zero[8];//空字節 設爲0
6 };

端口號:code

0 - 1023 :由IANA管理,保留爲公共的服務還用blog

1023 - 49151 : 是普通的用戶註冊端口號,由IANA列出io

49152 - 65535 : 動態/私有的端口號class

普通用戶應用程序應該選擇:1024-49151二進制

自由使用:49 152 - 65 535nio

sin_addr中描述IP地址:程序

結構定義以下:數據

struct in_addr{ union{ struct{u_char s_b1,s_b2,s_b3,s_b4;} S_un_b; struct{u_short s_w1,sw_2;}S_un_w; u_long S_addr; }S_un; };

32位與aa.bb.cc.dd之間的轉換,能夠經過下面函數完成

unsinged long inet_addr(const char*cp);//aa.bb.cc.dd 轉爲成爲 32位二進制
char * inet_ntoa(struct in_addr in);//將32位二進制 轉化成爲 aa.bb.cc.dd

 

 

字節順序: Intel x86使用小尾順序

      TCP/IP統一規定使用  大尾方式 傳輸數據

相關文章
相關標籤/搜索