• <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>

            李澤然---路在自己腳下!***只有當(dāng)潮水退去的時候,才知道誰在裸泳***

            C++博客 聯(lián)系 聚合 管理
              7 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

            首先講一下用到的兩個函數(shù)---------getsockname()和getpeername():

            1、getsockname()

              獲取一個套接口的本地名字。

              #include <winsock.h>;

              int PASCAL FAR getsockname( SOCKET s, struct sockaddr FAR* name,int FAR* namelen);

              s:標(biāo)識一個已捆綁套接口的描述字。
              name:接收套接口的地址(名字)。
              namelen:名字緩沖區(qū)長度。

             getsockname()函數(shù)用于獲取一個套接口的名字。它用于一個已捆綁或已連接套接口s,本地地址將被返回。本調(diào)用特別適用于如下情況:未調(diào)用bind()就調(diào)用了connect(),這時唯有g(shù)etsockname()調(diào)用可以獲知系統(tǒng)內(nèi)定的本地地址。在返回時,namelen參數(shù)包含了名字的實(shí)際字節(jié)數(shù)。
            若一個套接口與INADDR_ANY捆綁,也就是說該套接口可以用任意主機(jī)的地址,此時除非調(diào)用connect()或accept()來連接,否則getsockname()將不會返回主機(jī)IP地址的任何信息。除非套接口被連接,WINDOWS套接口應(yīng)用程序不應(yīng)假設(shè)IP地址會從INADDR_ANY變成其他地址。這是因?yàn)閷τ诙鄠€主機(jī)環(huán)境下,除非套接口被連接,否則該套接口所用的IP地址是不可知的。

            返回值:
             若無錯誤發(fā)生,getsockname()返回0。否則的話,返回SOCKET_ERROR錯誤,應(yīng)用程序可通過WSAGetLastError()獲取相應(yīng)錯誤代碼。


            錯誤代碼:
              WSANOTINITIALISED:在使用此API之前應(yīng)首先成功地調(diào)用WSAStartup()。
              WSAENETDOWN:WINDOWS套接口實(shí)現(xiàn)檢測到網(wǎng)絡(luò)子系統(tǒng)失效。
              WSAEFAULT:namelen參數(shù)不夠大。
              WSAEINPROGRESS:一個阻塞的WINDOWS套接口調(diào)用正在運(yùn)行中。
              WSAENOTSOCK:描述字不是一個套接口。
              WSAEINVAL:套接口未用bind()捆綁。

            2、------getpeername()

             獲取與套接口相連的端地址。

              #include <winsock.h>

              int PASCAL FAR getpeername( SOCKET s, struct sockaddr FAR* name,
              int FAR* namelen);

              s:標(biāo)識一已連接套接口的描述字。
              name:接收端地址的名字結(jié)構(gòu)。
              namelen:一個指向名字結(jié)構(gòu)的指針。

             getpeername()函數(shù)用于從端口s中獲取與它捆綁的端口名,并把它存放在sockaddr類型的name結(jié)構(gòu)中。它適用于數(shù)據(jù)報或流類套接口。

            返回值:
              若無錯誤發(fā)生,getpeername()返回0。否則的話,返回SOCKET_ERROR,應(yīng)用程序可通過WSAGetLastError()來獲取相應(yīng)的錯誤代碼。

            錯誤代碼:
              WSANOTINITIALISED:在使用此API之前應(yīng)首先成功地調(diào)用WSAStartup()。
              WSAENETDOWN:WINDOWS套接口實(shí)現(xiàn)檢測到網(wǎng)絡(luò)子系統(tǒng)失效。
              WSAEFAULT:namelen參數(shù)不夠大。
              WSAEINPROGRESS:一個阻塞的WINDOWS套接口調(diào)用正在運(yùn)行中。
              WSAENOTCONN 套接口未連接。
              WSAENOTSOCK:描述字不是一個套接口。

            posted on 2008-12-22 20:14 lzr 閱讀(2171) 評論(0)  編輯 收藏 引用

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


            精品久久久久久久久久中文字幕| 人人狠狠综合久久亚洲| 麻豆亚洲AV永久无码精品久久| 新狼窝色AV性久久久久久| 日韩精品无码久久久久久| 2020最新久久久视精品爱 | 亚洲国产高清精品线久久| 亚洲午夜无码久久久久小说| 婷婷久久香蕉五月综合加勒比| 久久香蕉国产线看观看99| 久久中文字幕人妻丝袜| 久久久青草青青亚洲国产免观| 久久这里只精品99re66| 国内精品久久久久| 伊人久久综合精品无码AV专区| 国内精品久久久久久久涩爱| av色综合久久天堂av色综合在| 久久亚洲国产午夜精品理论片| 欧美日韩精品久久久久| 久久久久久久亚洲精品| 久久青青草原精品影院| 亚洲午夜久久久久久久久电影网 | 欧美一级久久久久久久大| 久久久亚洲欧洲日产国码二区| 久久综合给合综合久久| 欧美激情精品久久久久| 久久久一本精品99久久精品88| 久久综合久久综合亚洲| 香蕉aa三级久久毛片| 久久精品女人天堂AV麻| 国产福利电影一区二区三区久久老子无码午夜伦不 | 人妻无码久久一区二区三区免费| 亚洲精品综合久久| 亚洲国产成人久久综合野外 | 午夜欧美精品久久久久久久| 亚洲国产成人精品无码久久久久久综合 | 国产精品久久久久久久久鸭| 日韩人妻无码精品久久久不卡| 久久精品国产99久久久古代| 久久夜色精品国产| 2020久久精品亚洲热综合一本|