c 網路程式設計之getaddrinfo

2022-07-07 00:54:18 字數 711 閱讀 1705

問題:執行完getaddrinfo()後,傳入的引數四內容無變化。

首先給出ide規定格式

int __stdcall getaddrinfo(pcstr pnodename, pcstr pservicename, const addrinfoa *phints, paddrinfoa *ppresult)

引數二:null或 字元形式埠號

引數三:指向addrinfo物件的指標

其中引數四在程式設計的時候出了錯,addrinfo定義在ws2def.h中,結構為:

//

//structure used in getaddrinfo() call

//typedef

struct

addrinfo

addrinfoa, *paddrinfoa;

可見paddrinfoa為addrinfo指標型別,而方法的引數列表中引數四為paddrinfoa*,即addrinfo指標的指標。之前一直傳入的是(paddrinfoa*)addrinfo*,它將addrinfo的指標強制轉換為addrinfo指標的指標,最後當然得不出正確結果。

解決方案:

定義成 addrinfo* ai,傳入(paddrinfoa*)&ai;

定義成addrinfo** ai,傳入(paddrinfoa*)ai

定義成paddrinfo ai,傳入&ai。

c 網路程式設計之 DNS程式設計

system.命名空間包含了 dns類,它可以提供了編寫 dns所需要的函式。下面講解 dns類的一些方法以及在 c 中如何利用該類編寫程式。一 同步方法 在dns 類中定義了四個同步方法 gethostname gethostbyname gethostbyaddress resolve 下面分別...

C 網路程式設計之TCP UDP

網路位元組順序 tcp ip 採用16 32 位高位先存格式 tcp ip 網路應用中,通訊的兩個程序主要採用 c s模式。伺服器要先啟動,並根據請求提供相應的服務 1 開啟乙個通訊通道訂告知本地主機,它願意在某一位址和埠上接受客戶請求 2 等待客戶請求到達該埠 3 接受到重複服務請求,處理該請求並...

c 網路程式設計之socket

該函式接收三個引數。第乙個引數af指定位址族,對於tcp ip協議的套接字,它只能是af inet 也可寫成pf inet 第二個引數指定socket型別,對於1.1版本的socket,它只支援兩種型別的套接字,sock stream指定產生流式套接字,sock dgram產生資料報套接字。如果這個...