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

正文內(nèi)容

[工學(xué)]第7章網(wǎng)絡(luò)通訊相關(guān)的c語言應(yīng)用-文庫吧資料

2024-10-25 00:25本頁面
  

【正文】 PI及應(yīng)用 ? connect函數(shù) ? 函數(shù) connect連接兩個(gè)指定的套接字,參數(shù) sockfd是本地套接字描述符,由 socket函數(shù)返回;指針 serv_addr指定了服務(wù)器端套接字的地址結(jié)構(gòu),包括協(xié)議、地址和端口信息等;參數(shù) addrlen指定了地址結(jié)構(gòu)的長度,一般設(shè)置為sizeof( struct sockaddr)。 exit(1)。 if(bind(sockfd,(struct sockaddr*)amp。 bzero(amp。 = htons(PORT)。 socket函數(shù) family 含 義 AF_INET IPv4協(xié)議 AF_INET6 IPv6協(xié)議 AF_LOCAL Unix域協(xié)議 AF_ROUTE 路由套接字( socket) AF_KEY 密鑰套接字( socket) family取值含義 type 含 義 SOCK_STREAM 字節(jié)流套接字 socket SOCK_DGRAM 數(shù)據(jù)報(bào)套接字 socket SOCK_RAW 原始套接字 socket type取值含義 套接字相關(guān)的 API及應(yīng)用 ? bind函數(shù) ? 函數(shù) bind用來命名一個(gè)套接字,它為該套接字描述符分配一個(gè)半相關(guān)屬性,其語法要點(diǎn)如下所示。 protocol參數(shù)用來指定所選擇的參數(shù)類型,通常設(shè)為 0,以選擇所給定 family和 type組合的系統(tǒng)缺省值。該參數(shù)也常常被稱為協(xié)議域( domain)。 socket函數(shù)的語法要點(diǎn)如下所示。 exit(1)。res)。 /*調(diào)用 getaddinfo函數(shù) */ rc=getaddrinfo(localhost,NULL,amp。 = SOCK_DGRAM。hints,0,sizeof(hints))。 int rc。它是一個(gè) addrinfo結(jié)構(gòu)體,表 了該結(jié)構(gòu)體常見的選項(xiàng)值。 地址及順序處理 ? 名字地址轉(zhuǎn)化 ? ( 2)函數(shù)格式 ? getaddrinfo函數(shù)的語法要點(diǎn)如下所示。 地址及順序處理 ? 名字地址轉(zhuǎn)化 ? ( 2)函數(shù)格式 ? gethostbyname函數(shù)的語法要點(diǎn)如下所示。/*socket結(jié)構(gòu)體 */ ? struct addrinfo *ai_next。/*地址長度 */ ? char *ai_canoname。/*socket類型 */ ? int ai_protocol。*/ ? int ai_family。 地址及順序處理 ? 名字地址轉(zhuǎn)化 ? ( 1)函數(shù)說明 ? getaddrinfo函數(shù)涉及一個(gè) addrinfo的結(jié)構(gòu)體,如下所示: ? struct addrinfo{ ? int ai_flags。/*地址長度 */ ? char **h_addr_list。/*主機(jī)別名 */ ? int h_addrtype。 地址及順序處理 ? 名字地址轉(zhuǎn)化 ? ( 1)函數(shù)說明 ? gethostbyname和 gethostbyaddr都涉及一個(gè) hostent的結(jié)構(gòu)體,如下所示: ? struct hostent{ ? char *h_name。 ? ? 頭文件 ? include arpa/ ? ? 函數(shù)原型 ? int i_pton( int family, /*協(xié)議類型 */ ? const char *strptr, /*要轉(zhuǎn)化的值 */ ? void *addrptr) /*轉(zhuǎn)化后的地址 */ ? int i_ntop( int family, /*協(xié)議族, AF_INET */ ? void *addrptr, /*轉(zhuǎn)化后的地址 */ ? char *strptr, /*要轉(zhuǎn)化的值 */ ? size_t len) /*轉(zhuǎn)化后值的大小 */ ? ? 函數(shù)返回值 ? 成功: 0 ? 出錯(cuò): 1 地址及順序處理 ? 名字地址轉(zhuǎn)化 ? ( 1)函數(shù)說明 ? 在 Linux中有一些函數(shù)可以實(shí)現(xiàn)主機(jī)名和地址的轉(zhuǎn)化,如gethostbyname、 gethostbyaddr、 getaddrinfo等,它們都可以實(shí)現(xiàn) IPv4和 IPv6的地址和主機(jī)名之間的轉(zhuǎn)化。 ? i_pton()函數(shù)是將點(diǎn)分十進(jìn)制地址映射為二進(jìn)制地址,而i_ntop()是將二進(jìn)制地址映射為點(diǎn)分十進(jìn)制地址。 ? 這里在 IPv4中用到的函數(shù)有 i_aton()、 i_addr()和 i_ntoa(),而IPv4和 IPv6兼容的函數(shù)有 i_pton()和 i_ntop()。 地址及順序處理 ? 數(shù)據(jù)存儲(chǔ)優(yōu)先順序 ? ( 2)函數(shù)格式說明 ? 這四個(gè)函數(shù)的語法格式如下所示。 ? 調(diào)用這些函數(shù)只是使其得到相應(yīng)的字節(jié)序,用戶不需清楚該系統(tǒng)的主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序是否真正相等。 ? 這四個(gè)地址分別實(shí)現(xiàn)網(wǎng)絡(luò)字節(jié)序和主機(jī)字節(jié)序的轉(zhuǎn)化,這里的 h代表host, n代表 work, s代表 short, l代表 long。 ? 這兩個(gè)數(shù)據(jù)類型是等效的,可以相互轉(zhuǎn)化 地址及順序處理 ? 地址結(jié)構(gòu)相關(guān)處理 ? ( 2)結(jié)構(gòu)字段 ? 該結(jié)構(gòu) sa_family字段可選的常見值 地址及順序處理 ? 數(shù)據(jù)存儲(chǔ)優(yōu)先順序 ? ( 1)函數(shù)說明 ? 計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)有兩種字節(jié)優(yōu)先順序:高位字節(jié)優(yōu)先和低位字節(jié)優(yōu)先 . ? Inter上數(shù)據(jù)以高位字節(jié)優(yōu)先順序在網(wǎng)絡(luò)上傳輸,因此在有些情況下,需要對(duì)這兩個(gè)字節(jié)存儲(chǔ)優(yōu)先順序進(jìn)行相互轉(zhuǎn)化。 /*IP地址 */ ? unsigned char sin_zero[8]。 /*地址族 */ ? unsigned short int sin_port。 /*14字節(jié)的協(xié)議地址,包含該 socket的 IP地址和端口號(hào) */ ? }。 地址及順序處理 ? 地址結(jié)構(gòu)相關(guān)處理 ? ( 1)數(shù)據(jù)結(jié)構(gòu)介紹 ? 下面首先介紹兩個(gè)重要的數(shù)據(jù)類型: sockaddr和 sockaddr_in,這兩個(gè)結(jié)構(gòu)類型都是用來保存 socket信息的,定義如下所示: ? struct sockaddr { ? unsigned short sa_family。 ? ? 數(shù)據(jù)報(bào)套接字( SOCK_DGRAM)定義了一種無連接的服務(wù),數(shù)據(jù)通過相互獨(dú)立的報(bào)文進(jìn)行傳輸,是無序的,并且不保證是可靠、無差錯(cuò)的,它使用數(shù)據(jù)報(bào)協(xié)議 UDP。 ? socket也有一個(gè)類似于打開文件的函數(shù)調(diào)用,該函數(shù)返回一個(gè)整型的 socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^ socket來實(shí)現(xiàn)的。 ? socket是一種常用的進(jìn)程之間通信機(jī)制,通過它不僅能實(shí)現(xiàn)本地機(jī)器上的進(jìn)程之間的通信,而且通過網(wǎng)絡(luò)能夠在不同機(jī)器上的進(jìn)程之間進(jìn)行通信。 ? ? 網(wǎng)絡(luò)狀況不是很好的情況下需選用 TCP協(xié)議(如在廣域網(wǎng)等情況),網(wǎng)絡(luò)狀況很好的情況下選擇 UDP協(xié)議可以減少網(wǎng)絡(luò)負(fù)荷。 ? ? 對(duì)數(shù)據(jù)可靠性要求高的應(yīng)用需選擇 TCP協(xié)議,而對(duì)數(shù)據(jù)的可靠性要求不那么高的應(yīng)用可選擇 UDP傳送。因?yàn)閳?bào)頭的長度是固定的,所以該域主要用來計(jì)算可變長度的數(shù)據(jù)部分(又稱為數(shù)據(jù)負(fù)載)。 TCP/IP核心協(xié)議 ? UDP ? ( 2) UDP數(shù)據(jù)包頭 ? ? 源地址、目的地址: 16位長,標(biāo)識(shí)出遠(yuǎn)端和本地的端口號(hào)。 ? 由于 UDP協(xié)議并不需要建立一個(gè)明確的連接,因此建立UDP應(yīng)用要比建立 TCP應(yīng)用簡單得多。 ? 可選項(xiàng): 0個(gè)或多個(gè) 32位字,包括最大 TCP載荷、窗口比例、選擇重發(fā)數(shù)據(jù)報(bào)等選項(xiàng)。 ? 窗口大?。?16位長,窗口大小字段表示在確認(rèn)了字節(jié)之后還可以發(fā)送多少個(gè)字節(jié)。 ? SYN:用于建立連接。因此請(qǐng)求數(shù)據(jù)報(bào)一到接收方便可送往應(yīng)用程序而不必等到緩沖區(qū)裝滿時(shí)才傳送。 ? ACK: ACK位置 1表明確認(rèn)號(hào)是合法的;如果 ACK為 0,那么數(shù)據(jù)報(bào)不包含確認(rèn)信息,確認(rèn)字段被省略。 ? TCP頭長: 4位長,表明 TCP頭中包含多少個(gè) 32位字。 ? 序號(hào): 32位長,標(biāo)識(shí)發(fā)送的數(shù)據(jù)報(bào)的順序。如果發(fā)送方的定時(shí)器在確認(rèn)信息到達(dá)之前超時(shí),那么發(fā)送方會(huì)重發(fā)該數(shù)據(jù)報(bào)。當(dāng)發(fā)送方傳送一個(gè)數(shù)據(jù)報(bào)時(shí),它將啟動(dòng)計(jì)時(shí)器。 ? ? 客戶向服務(wù)器發(fā)送一個(gè)包含 SYN即同步( Sync
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1