<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    一.socket的一些基本結(jié)構(gòu)

    132位的IP地址:

    struct in_addr

    {

        unsigned long s_addr;

    }

     

    2TCP/IP所在的網(wǎng)際通信域使用的套接字地址格式:

    struct sockaddr_in

    {

        short int sin_family;               //表示所屬地址簇,TCP/IP必須是AF_INET

        unsigned short int sin_port;   //表示端口號(hào)

        struct in_addr sin_addr;       //表示32位的IP地址,用in_addr結(jié)構(gòu)表示

        unsigned char sin_zero[8];   //表示全部填充0,保證和sockaddr大小相同

    }

     

    二.socket的一些輔助函數(shù)

    1.字節(jié)序轉(zhuǎn)換函數(shù):

        ·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表示hostn表示networkl表示longs表示short

    例如:

        num = htons(Port_NUM);

        表示將一個(gè)名叫Port_NUM的端口號(hào)轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序并賦值給num變量

     

    2IP地址轉(zhuǎn)換函數(shù):

       ·inet_addr()

         將一個(gè)用點(diǎn)分十進(jìn)制表示的IP地址字符串轉(zhuǎn)換成32位無符號(hào)整數(shù)。此整數(shù)已經(jīng)是

         網(wǎng)絡(luò)字節(jié)順序,無需再調(diào)用htonl()

       ·inet_ntoa()

         將一個(gè)32位無符號(hào)整數(shù)轉(zhuǎn)換成一個(gè)點(diǎn)分十進(jìn)制表示的IP地址字符串,此函數(shù)接受

         一個(gè)in_addr結(jié)構(gòu)作為參數(shù),將返回的字符串存儲(chǔ)再一個(gè)static的緩沖區(qū)內(nèi),因

         此,下次調(diào)用此函數(shù)時(shí),將改變上次調(diào)用的結(jié)果。

     

    3.查找主機(jī)信息函數(shù):

       struct hostent* gethostbyname(const char *name);

       參數(shù):輸入?yún)?shù)時(shí)需要解析的主機(jī)名,也可以是域名

       返回值:返回一個(gè)描述主機(jī)信息的結(jié)構(gòu)hostent的指針

       struct hostent

       {

           char *h_name;                    //主機(jī)的正式名稱

           char **h_aliases;                //主機(jī)的別名

           int h_addrtype;                  //主機(jī)地址類型

           int h_length;                    //地址長(zhǎng)度

           char **h_addr_list;              //存儲(chǔ)主機(jī)地址的數(shù)組

           #define h_addr h_addr_list[0]    //為向后兼容

    };

    對(duì)于TCP/IP協(xié)議而言,h_addrtype的值等于AF_INETh_length的值是4,因?yàn)?span lang="EN-US">IP地址是4字節(jié)。h_addr_list實(shí)質(zhì)上是一個(gè)存儲(chǔ)地址的緩沖區(qū),如果后續(xù)的代碼要利用這個(gè)緩沖區(qū),需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

     

    posted on 2008-05-15 11:29 SIMONE 閱讀(330) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲国产精品无码一线岛国| 免费看大美女大黄大色| 亚洲人成影院在线无码观看| 亚洲av日韩综合一区久热| 永久免费AV无码网站在线观看| 亚洲精品蜜夜内射| 日本黄色免费观看| 污视频网站免费观看| 亚洲真人日本在线| 日韩免费高清播放器| 亚洲AV日韩AV天堂一区二区三区| 曰批全过程免费视频在线观看无码| 亚洲va久久久噜噜噜久久天堂| 99国产精品免费视频观看| 亚洲av无码乱码国产精品| 亚洲免费观看网站| 亚洲AV日韩综合一区尤物 | 羞羞视频在线免费观看| 亚洲国产成人久久综合野外| 在线免费观看h片| 亚洲精品高清国产麻豆专区| 在线观看免费人成视频色9| 朝桐光亚洲专区在线中文字幕| 亚洲综合另类小说色区| 久久99国产综合精品免费| 亚洲性色AV日韩在线观看| 亚洲毛片网址在线观看中文字幕| 97在线视频免费公开视频| 色在线亚洲视频www| 亚洲精品国精品久久99热| 久久久久成人精品免费播放动漫| 亚洲第一成人在线| 国产性爱在线观看亚洲黄色一级片 | 久久久久久一品道精品免费看| 亚洲国产成人精品无码区在线秒播| 午夜色a大片在线观看免费| 手机看片国产免费永久| 日韩亚洲产在线观看| 亚洲线精品一区二区三区影音先锋| 国产精品色拉拉免费看| 乱淫片免费影院观看|