freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[工學]第7章網絡通訊相關的c語言應用(編輯修改稿)

2025-11-15 00:25 本頁面
 

【文章內容簡介】 drptr) /*轉化后的地址 */ ? int i_ntop( int family, /*協議族, AF_INET */ ? void *addrptr, /*轉化后的地址 */ ? char *strptr, /*要轉化的值 */ ? size_t len) /*轉化后值的大小 */ ? ? 函數返回值 ? 成功: 0 ? 出錯: 1 地址及順序處理 ? 名字地址轉化 ? ( 1)函數說明 ? 在 Linux中有一些函數可以實現主機名和地址的轉化,如gethostbyname、 gethostbyaddr、 getaddrinfo等,它們都可以實現 IPv4和 IPv6的地址和主機名之間的轉化。 ? 其中 gethostbyname是將主機名轉化為 IP地址,gethostbyaddr則是逆操作,是將 IP地址轉化為主機名,另外 getaddrinfo還能實現自動識別 IPv4地址和 IPv6地址。 地址及順序處理 ? 名字地址轉化 ? ( 1)函數說明 ? gethostbyname和 gethostbyaddr都涉及一個 hostent的結構體,如下所示: ? struct hostent{ ? char *h_name。/*正式主機名 */ ? char **h_aliases。/*主機別名 */ ? int h_addrtype。/*地址類型 */ ? int h_length。/*地址長度 */ ? char **h_addr_list。/*指向 IPv4或 IPv6的地址指針數組 */ ? } ? 調用該函數后就能返回 hostent結構體的相關信息。 地址及順序處理 ? 名字地址轉化 ? ( 1)函數說明 ? getaddrinfo函數涉及一個 addrinfo的結構體,如下所示: ? struct addrinfo{ ? int ai_flags。/*AI_PASSIVE,AI_CANONNAME。*/ ? int ai_family。/*地址族 */ ? int ai_socktype。/*socket類型 */ ? int ai_protocol。/*協議類型 */ ? size_t ai_addrlen。/*地址長度 */ ? char *ai_canoname。/*主機名 */ ? struct sockaddr *ai_addr。/*socket結構體 */ ? struct addrinfo *ai_next。/*下一個指針鏈表 */ ? } ? 與 hostent結構體相比, addrinfo結構體包含更多的信息。 地址及順序處理 ? 名字地址轉化 ? ( 2)函數格式 ? gethostbyname函數的語法要點如下所示。 ? ? 頭文件 ? include ? ? 函數原型 ? struct hostent *gethostbyname(const char *hostname) /*主機名 */ ? ? 函數返回值 ? 成功: hostent類型指針 ? 出錯: 1 ? 調用該函數時可以首先對 addrinfo結構體中的 h_addrtype和 h_length進行設置,若為 IPv4可設置為 AF_INET和 4;若為 IPv6可設置為 AF_INET6和 16;若不設置則默認為 IPv4地址類型。 地址及順序處理 ? 名字地址轉化 ? ( 2)函數格式 ? getaddrinfo函數的語法要點如下所示。 ? ? 頭文件 ? include ? ? 函數原型 ? Int getaddrinfo( const char *hostname, /*主機名 */ ? const char *service, /*服務名或十進制的串口號字符串 */ ? const struct addrinfo *hints, /*服務線索 */ ? struct addrinfo **result) /*返回結果 */ ? ? 函數返回值 ? 成功: 0 ? 出錯: 1 ? 在調用之前,首先要對 hints服務線索進行設置。它是一個 addrinfo結構體,表 了該結構體常見的選項值。 addrinfo結構體 結構體頭文件 include ai_flags AI_PASSIVE:該套接口是用作被動地打開 AI_CANONNAME:通知 getaddrinfo函數返回主機的名字 family AF_INET: IPv4協議 AF_INET6: IPv6協議 AF_UNSPE: IPv4或 IPv6均可 ai_socktype SOCK_STREAM:字節(jié)流套接字 socket( TCP) SOCK_DGRAM:數據報套接字 socket( UDP) ai_protocol IPPROTO_IP: IP協議 IPPROTO_IPV4: IPv4協議 IPPROTO_IPV6: IPv6協議 IPPROTO_UDP: UDP IPPROTO_TCP: TCP 地址及順序處理 ? 名字地址轉化 ? ( 3) 使用實例 struct addrinfo hints,*res=NULL。 int rc。 memset(amp。hints,0,sizeof(hints))。 /*設置 addrinfo結構體中各參數 */ = AI_CANONNAME = AF_UNSPEC。 = SOCK_DGRAM。 = IPPROTO_UDP。 /*調用 getaddinfo函數 */ rc=getaddrinfo(localhost,NULL,amp。hints,amp。res)。 if(rc!= 0) { perror(getaddrinfo)。 exit(1)。 } 套接字相關的 API及應用 ? socket函數 ? 為了進行網絡通信,一個進程必須做的第一件事就是調用 socket函數,指定期望的通信協議類型。 socket函數的語法要點如下所示。 ? ? 頭文件 ? include sys/ ? ? 函數原型 ? int socket( int family, /*協議族 */ ? int type, /*套接字類型 */ ? int protocol) /*0(原始套接字除外) */ ? ? 函數返回值 ? 成功:非負套接字描述符 ? 出錯: 1 套接字相關的 API及應用 ? socket函數 ? 其中 family參數指明協議族( family),它通常取如表 所示的某個常值。該參數也常常被稱為協議域( domain)。 type參數指明套接字的類型,它通常取如表 。 protocol參數用來指定所選擇的參數類型,通常設為 0,以選擇所給定 family和 type組合的系統(tǒng)缺省值。 socket函數調用成功時,返回一個非負整數值,它與文件描述符類似,通常將其稱為套接口描述字,簡稱套接字。 socket函數 family 含 義 AF_INET IPv4協議 AF_INET6 IPv6協議 AF_LOCAL Unix域協議 AF_ROUTE 路由套接字( socket) AF_KEY 密鑰套接字( socket) family取值含義 type 含 義 SOCK_STREAM 字節(jié)流套接字 socket SOCK_DGRAM 數據報套接字 socket SOCK_RAW 原始套接字 socket type取值含義 套接字相關的 API及應用 ? bind函數 ? 函數 bind用來命名一個套接字,它為該套接字描述符分配一個半相關屬性,其語法要點如下所示。 ? ? 頭文件 ? include sys/ ? include sys/ ? ? 函數原型 ? int bi
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1