socket的一些基本結構

來源:互聯網
上載者:User
socket的一些基本結構一.socket的一些基本結構1.32位的IP地址:struct in_addr{    unsigned long s_addr;}2.TCP/IP所在的網際通訊域使用的通訊端地址格式:struct sockaddr_in{    short int sin_family;             //表示所屬地址簇,TCP/IP必須是AF_INET    unsigned short int sin_port;   //表示連接埠號碼    struct in_addr sin_addr;       //表示32位的IP地址,用in_addr結構表示    unsigned char sin_zero[8];   //表示全部填充0,保證和sockaddr大小相同}二.socket的一些輔助函數1.位元組序轉換函式:·htons : host to network byte order , short (unsigned) integer   ·htonl : host to network byte order , long (unsigned) integer   ·ntohs : network to host byte order , short (unsigned) integer   ·ntohl : network to host byte order , long (unsigned) integer記憶方法:    h表示host,n表示network,l表示long,s表示short例如:    num = htons(Port_NUM);    表示將一個名叫Port_NUM的連接埠號碼轉換成網路位元組順序並賦值給num變數2.IP地址轉換函式:   ·inet_addr()     將一個用點分十進位表示的IP地址字串轉換成32位不帶正負號的整數。此整數已經是      網路位元組順序,無需再調用htonl()·inet_ntoa()     將一個32位不帶正負號的整數轉換成一個點分十進位表示的IP地址字串,此函數接受     一個in_addr結構作為參數,將返回的字串儲存再一個static的緩衝區內,因     此,下次調用此函數時,將改變上次調用的結果。3.尋找主機資訊函數:   struct hostent* gethostbyname(const char *name);   參數:輸入參數時需要解析的主機名稱,也可以是網域名稱   傳回值:返回一個描述主機資訊的結構hostent的指標   struct hostent   {       char *h_name;                    //主機的正式名稱       char **h_aliases;                //主機的別名       int h_addrtype;                  //主機地址類型       int h_length;                    //地址長度       char **h_addr_list;              //儲存主機地址的數組       #define h_addr h_addr_list[0]    //為向後相容};對於TCP/IP協議而言,h_addrtype的值等於AF_INET,h_length的值是4,因為IP地址是4位元組。h_addr_list實質上是一個儲存地址的緩衝區,如果後續的代碼要利用這個緩衝區,需要進行強制類型轉換。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.