• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            單鏈DNA

            換了個(gè)地址:http://www.cnblogs.com/vizhen/

             

            Windows網(wǎng)絡(luò)程序設(shè)計(jì)基礎(chǔ)知識(shí)拾掇(三)

            1.異構(gòu)環(huán)境下的網(wǎng)絡(luò)編程
                  不同的平臺(tái)以不同的方式存放一個(gè)二進(jìn)制。最常見的兩種格式:大數(shù)在前的字節(jié)順序和小數(shù)在前的字節(jié)順序。
                  大字在前:將一個(gè)多字節(jié)數(shù)的高序字節(jié)存儲(chǔ)在內(nèi)存的其實(shí)地址。而小數(shù)在前的字節(jié)順序剛好相反。      
                  套接字編程接口(Socket API)提供了4個(gè)函數(shù)解決本機(jī)與網(wǎng)絡(luò)的字節(jié)順序:
                   htons():短整數(shù)本機(jī)順序轉(zhuǎn)換為網(wǎng)絡(luò)順序,用于端口號(hào)。
                   htonl():長整數(shù)本機(jī)順序轉(zhuǎn)換為網(wǎng)絡(luò)順序,用于IP地址。
                   ntohs():短整數(shù)網(wǎng)絡(luò)順序轉(zhuǎn)換為本機(jī)順序,用于端口號(hào)。
                   ntohl():長整數(shù)網(wǎng)絡(luò)順序轉(zhuǎn)換為本機(jī)順序,用于IP地址。

                  點(diǎn)分十進(jìn)制的IP地址的轉(zhuǎn)換:
                  unsigned long inet_addr(cost char *cp):
                            cp:點(diǎn)分十進(jìn)制形式的IP地址。
                            返回值:網(wǎng)絡(luò)字節(jié)序的IP地址,無符號(hào)長整數(shù)

                  char * int_ntoa(struct in_addr  in):
                            in:包含長整數(shù)IP地址的in_addr結(jié)構(gòu)變量。
                           返回值:點(diǎn)分十進(jìn)制IP地址的字符串指針。

                 域名服務(wù):
                       struct hostent *  gethodtbyname(const char * name);
                        name:站點(diǎn)主機(jī)域名字符串。
                        返回值:是指向hostent結(jié)構(gòu)指針
                        hostent:包含主機(jī)名,主機(jī)別名數(shù)組、返回地址的類型(一般是AF_INET)


            2.阻塞與非阻塞
                  通信包括阻塞和非阻塞。
                  在阻塞模式下,利用TCP協(xié)議發(fā)送一個(gè)報(bào)文時(shí),如果低層協(xié)議沒有可用空間來存放用戶數(shù)據(jù),則應(yīng)用進(jìn)程將阻塞等待直到協(xié)議有可用的空間。而非阻塞模式下調(diào)用將直接返回而不等待。在應(yīng)用進(jìn)程調(diào)用接收函數(shù)接收?qǐng)?bào)文時(shí),如果是在阻塞模式下,若沒有到達(dá)數(shù)據(jù),則調(diào)用將一直阻塞直到有數(shù)據(jù)到達(dá)或者出錯(cuò),而非阻塞模式下,將直接返回不等待。
                  對(duì)于UDP協(xié)議而言,由于UDP沒有發(fā)送緩存,因此UDP協(xié)議即使在阻塞模式下也不會(huì)發(fā)生阻塞。

            3.套接字及類型
                  socket(套接字)是網(wǎng)絡(luò)通信的基本構(gòu)件,是可以被命名和尋址的通信端點(diǎn),使用中的每一個(gè)套接字都有與其類型和與之相連的進(jìn)程。
                  TCP/IP的socket提供三種類型的套接字:
                  *SOCK_STREAM(流式套接字):提供一個(gè)面向連接的、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò)、無重復(fù)、且按發(fā)送順序接收。內(nèi)設(shè)流量控制,避免數(shù)據(jù)流超限。數(shù)據(jù)被看作是字節(jié)流,無長度限制。
                  *SOCK_DGRAM(數(shù)據(jù)報(bào)式套接字):提供一個(gè)無連接服務(wù)。數(shù)據(jù)報(bào)以獨(dú)立包形式被發(fā)送,不提供無錯(cuò)保證。
                 *SOCK_RAW(原始套接字):該接口允許比較低層協(xié)議。

            posted on 2010-07-04 13:01 Geek.tan 閱讀(244) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            導(dǎo)航

            統(tǒng)計(jì)

            公告

            coding是我的寂寞,我是誰的寂寞

            隨筆分類(40)

            隨筆檔案(48)

            搜索

            積分與排名

            最新評(píng)論

            評(píng)論排行榜

            一本色道久久99一综合| 日韩欧美亚洲国产精品字幕久久久| 久久91精品国产91| 午夜天堂精品久久久久| 久久大香香蕉国产| 久久久久人妻一区精品| 亚洲va久久久噜噜噜久久男同| 国产99久久精品一区二区| 热久久国产欧美一区二区精品 | 中文精品99久久国产| 久久99国内精品自在现线| 久久久国产一区二区三区| 亚洲国产精品无码成人片久久| 97精品国产97久久久久久免费| 99久久香蕉国产线看观香| 91秦先生久久久久久久| 久久亚洲AV成人无码国产| 久久影院午夜理论片无码| 久久久久久免费一区二区三区| 久久精品国产色蜜蜜麻豆| 久久av高潮av无码av喷吹| 久久ZYZ资源站无码中文动漫| 亚洲伊人久久综合中文成人网| 岛国搬运www久久| 99久久久精品| 2021久久精品国产99国产精品| 99久久精品国产一区二区| 亚洲另类欧美综合久久图片区| 久久久久亚洲AV成人网| 亚洲一区二区三区日本久久九| 久久久久99精品成人片欧美| 伊人久久精品无码二区麻豆| 超级碰碰碰碰97久久久久| 思思久久99热只有频精品66| 久久精品国产欧美日韩99热| 一本一道久久a久久精品综合| 久久精品国产一区二区电影| 久久se这里只有精品| 国产精品午夜久久| 久久无码精品一区二区三区| 色综合合久久天天给综看|