<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于C++中的IPv6網(wǎng)絡(luò )程序設計

基于C++中的IPv6網(wǎng)絡(luò )程序設計

作者: 時(shí)間:2012-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

三.獨立于協(xié)議的地址及名稱(chēng)解析

由此可見(jiàn)在尋址時(shí),IPv4使用16字節的SOCK_ADDR_IN 結構,則使用28 字節的SOCK_ADDR_IN6 結構。為了解決這個(gè)問(wèn)題,中引入了新的尋址函數。 [Page]

1.getaddrinfo(),它提供獨立于協(xié)議的名稱(chēng)解析:

int getaddrinfo(

const char *FAR *nodenAME,

const char FAR* SERvname,

const struct addrinfo FAR *hins,

struct addrinfo FAR *FAR *res

);

l 第一參數:nodename,以空字節結束的主機名或文字地址

l 第二參數:servname,包含端口或服務(wù)名(如:FTP,TELNET)的以空字節結束的字符串

l 第三個(gè)參數:hins 是一個(gè)結構(addrinfo),包含名稱(chēng)解析的執行方式選項

l 第四個(gè)參數:res ,用于返回 addrinfo 結構的一個(gè)或多個(gè)鏈表

結構addrinfo 的定義:

struct addrinfo{

int ai_flags;

int ai_family;

int ai_socktype;

int ai_protocol;

size_t ai_addrlen;

char *ai_cannoname;

struct sockaddr *ai_addr;

struct addrinfo *ai_next;

}

l ai_flags 選值:AI_PASSIVE:可以用來(lái)獲取能夠傳遞給bind函數的地址,此時(shí)nodename應設置為NULL,servname為欲綁定的端口;AI _CANONNAME 表示nodename 是主機名;AI_NUMBERICHOST 表示, nodename 是一個(gè)文字字符串地址(如:“192.168.0.1”)

l ai_family 選值:AI_INET或PF_INET(IPv4地址簇);AI_INET6或PF_INET6(地址簇);AI_UNSPEC(未指定,可能是IPv4或IPv6 地址簇)

l ai_socktype選值:SOCK_DGRAM(UDP類(lèi)型套接字);SOCK_STREAM (TCP類(lèi) 型套接字)

l ai_protocol 選值:IPPROTO_TCP (TCP/IP協(xié)議)

如果函數解析成功,解析后的地址將通過(guò)res返回。如果名稱(chēng)被解析為多個(gè)地址,則返回一個(gè)由ai_next 字段形成的鏈表。每個(gè)由名稱(chēng)解析的地址在ai_addr中表示,長(cháng)度在ai_addrlen中表示。

2.getnameinfo()函數與getaddrinfo()相對應,功能相反。

. int getnameinfo(

const struct sockaddr FAR *sa,

socklen_t salen, [Page]

char FAR *host,

DWORD hostlen,

char FAR *serv,

DWORD servlen,

Int flags);

以上參數的含義比較明顯,不再一一說(shuō)明。

3.釋放函數: freeaddrinfo(res);

四、兼容IPv4和IPv6的

兼容IPv4和IPv6的程序,顯然涉及到兩個(gè)部分:客戶(hù)機和服務(wù)器。

在Windows 編程中,Winsock是一種標準的API(應用程序接口),Winsock2版本已經(jīng)發(fā)展成獨立于協(xié)議的的接口,被廣泛應用于Windows平臺中。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>