1、位元組排序函式:在計算機網路中,放送端在傳輸資料之前必須要將用主機位元組順序表示的資料轉化為網路位元組順序,然後才能傳送資料。在資料接收端,系統要把收到的網路位元組順序的資料轉化為主機位元組順序的資料。
(1) 4位元組主機位元組順序的資料轉化為網路位元組順序的資料——htonl()和wsahtonl():該函式主要用來將乙個32位的ip位址從主機位元組順序轉化為網路位元組順序。
(2) 2位元組主機位元組順序的資料轉化為網路位元組順序的資料——htons()和wsahtons:該函式主要用來將乙個16位的tcp或udp埠號從主機位元組順序轉化為網路位元組順序。
(3) 4位元組網路位元組順序的資料轉化為主機位元組順序的資料——ntohl()和wsantohl:該函式主要用來將乙個網路位元組順序表示的32位ip位址轉化為主機位元組順序。
(4) 2位元組網路位元組順序的資料轉化為主機位元組順序的資料——ntohs()和wsantohs:該函式主要用來將乙個網路位元組順序表示的16位tcp或udp埠號轉化為主機位元組順序。
2、ip位址轉化函式:在網路程式中,要把 用點分十進位制字串形式表示的ip位址轉化為用網路位元組順序表示的ip位址。如果在程式中要輸出ip位址時,則又要把用二進位制表示的網路位元組順序的ip位址轉化為點分十進位制表示的主機ip位址,使用者才能識別。
(1) 點分十進位制表示的ip位址轉化為網路位元組順序的ip位址——inet_addr()
(2) 網路位元組順序的ip位址轉化為點分十進位制數表示的ip位址——inet_ntoa()
3、網路資訊獲取函式(資料庫函式):網路中的主機需要tcp/ip協議或其他協議才能進行通訊,網路應用程式有時需要獲取主機上與網路有關的資訊,這些資訊一般存放在資料檔案中。與網路有關的資訊主要包括4大類:
主機資訊:與主機有關的資訊,函式名一般以gethostby開頭,在程式中較多使用。
網路資訊:與網路有關的資訊,函式名一般以getnetby開頭,在程式中較少使用。
協議資訊:與網路協議有關的資訊,函式名一般以getprotoby開頭,在程式中較少使用。
服務資訊:與網路提供的服務有關的資訊,函式名一般以getservby開頭,在程式中較多使用。
(1) 獲得主機名——gethostname():該函式取得一台主機的名稱資訊。主機名的形式取決於winsock系統的實現,它可能是乙個簡單的主機名,或者是乙個網域名稱。不管是哪種形式,該函式返回的名字必定可以在gethostbyname和wsaasyncgethostbyname()函式中使用。
(2) 獲得與套介面相連的遠端協議位址——getpeername():用於從套介面中獲取與它繫結的遠端協議的位址資訊,它只能用於已建立連線的套介面。對於資料報型別 的台階口,它只能返回先前呼叫connect()函式時使用的對等端資訊,在sendto()函式中使用過的對等端資訊不能返回。
(3) 獲得套介面本地協議位址——getsockname():用於獲取乙個套介面的協議位址,它用於乙個已繫結或已連線的套介面。本呼叫特別適用於如下情況:未呼叫bind()就呼叫了connect(),這時唯有getsockname()函式可以獲知系統內定的本地位址。如果乙個套介面與inaddr_any繫結,即該套介面可以用任意的知己位址,此時除非呼叫connect()或者accept()來連線,否則getsockname()將不會返回主機ip位址的任何資訊。
(4)根據主機名取得主機資訊——gethostbyname()或wsaasyncgetbyname():從主機資料庫中取得與指定的主機名對應的主機資訊。
WinSock API 常用函式
winsock api 常用函式 winsocks提供了許多嵌接字函式,他們並不代表協議的某乙個層次,其實質就是一組網路程式設計介面,使用者利用這些函式就能很容易地進行程式設計了。1 accept函式語法 s 是乙個套接字,它應處於監聽狀態 addr 是乙個sockaddr in結構指標,包含一株客...
UDP協議的WinSock API程式設計示例
server 端 word wversion wsadata wsadata sockaddr in server addr,client addr char buff 1024 wversion makeword 2,2 if wsastartup wversion,wsadata 0 socke...
基於Winsock API的VC網路程式設計實戰
隨著計算機資訊技術的飛速發展,網際網路與人類社會的工作 生活越來越緊密相關,它已經成為人類獲取 交流資訊的重要途徑和手段。所以當前對於開發人員來說,網路程式設計已是必備的技能。本例項詳細介紹了如何利用winsock api編寫網路應用程式。一 實現方法 在網路程式設計中最常用的方案便是client ...