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

正文內(nèi)容

linu組網(wǎng)技術與網(wǎng)絡通信編程(編輯修改稿)

2025-01-19 01:06 本頁面
 

【文章內(nèi)容簡介】 d==0) printf (“ I’ m child… \n” )。 else printf (“ fork error\n” )。 … 38 常用的系統(tǒng)調(diào) —— exec() 功能:執(zhí)行一個文件 語法: include int execl(char *path,char *arg0,...,(char *)0)。 int execv(char *path,char *argv[])。 int execle(char *path,char *arg0,… ,(char *)0,char *envp[])。 int execve(char *path,char *argv[],char *envp[])。 int execl(char *file,char *arg0,...,(char *)0)。 int execvp(char *file,char *argv[])。 返回值:失敗時返回 1。 例子: … execl (“ /bin/ps” , “ ps” , “ ef” , (char *)0)。 printf (“ fork error\n” )。exit (1)。 … 39 常用的系統(tǒng)調(diào) —— wait()和 waitpid() 功能:等待一個子進程返回并修改狀態(tài) 語法: include sys/ include sys/ pid_t wait (int *stat_loc)。 pid_t waitpid (pid_t pid , int *stat_loc , int options)。 返回值:等待到一個子進程返回時 , 返回該子進程號 ,否則返回 1。 同時 stat_loc存放子進程的返回值 。 40 常用的系統(tǒng)調(diào) —— exit() 功能:終止進程 . 語法: include void exit (int status)。 說明:調(diào)用進程被該系統(tǒng)調(diào)用終止 。 返回值:無 例子: … if (fork ()0) wait ((int *)0)。 /*父進程等子進程 */ else { /*子進程處理過程 */ exit (0)。 } … 返回 41 Linux上 Socket編程及實例 ? Berkeley套接字概述 ? 套接字基礎知識 ? 基本套接字 基本套接字系統(tǒng)調(diào)用 客戶-服務器模式 ? DNS的操作 ? 五種 I/O模式 ? 使用 Id 返回 42 Berkeley套接字概述 —— 套接字歷史 在 80年代早期,遠景研究規(guī)劃局資助了加利福尼亞大學伯克利分校的一個研究組,讓他們將 TCP/IP軟件移植到 UNIX操作系統(tǒng)中。作為項目的一部分,設計者們創(chuàng)建了一個接口,應用進程使用這個接口可以方便地進行通信。于是就出現(xiàn)了插口接口( Berkeley套接口)。 它首先出現(xiàn)在 BSD 。由于許多計算機廠商都采用了 Berkeley UNIX,于是許多機器上都可以使用套接字。這樣,套接字就被廣泛使用,到現(xiàn)在已經(jīng)成為事實上的標準。 43 Berkeley套接字概述 —— 何謂套接字 套接字 (Socket)英文原意是 “ 插座 ” , 作為 BSD UNIX的進程通信機制 , 它實質(zhì)上提供了進程通信的端點 。 每個套接字都包含三個值:協(xié)議 、 本地地址和本地端口號 。 套接字有本地唯一的套接字號 , 是一個整型數(shù) 。 事實上它是一個文件描述符 。 44 Berkeley套接字概述 —— 套接字類型 ? 流式套接字 ( SOCK_STREAM) :提供可靠的 、面向連接的通信流 , 通過它發(fā)送的數(shù)據(jù)保證原有順序不變 。 它使用的是 TCP協(xié)議 。 ? 數(shù)據(jù)報套接字 ( SOCK_DGRAM) :定義了一種無連接的服務 , 數(shù)據(jù)通過相互獨立的報文進行傳輸 , 是無序的 , 并且不保證可靠 、 無差錯 。它使用的是 UDP協(xié)議 。 ? 原始套接字 ( SOCK_RAW) :允許對底層的協(xié)議直接訪問 , 主要用于新的網(wǎng)絡協(xié)議的開發(fā) 。它功能強大 , 但沒有上面兩種套接字方便 。 返回 45 套接字基礎知識 —— IPv4套接字地址結構 IPv4套接字地址結構在 i/: struct in_addr { in_addr_t s_addr。 //32位 IPv4地址 }。 //網(wǎng)絡字節(jié)順序 struct sockaddr_in{ uint8_t sin_len。 //結構的長度 ( =16) sa_family_t sin_family。 //AF_INET in_port_t sin_port。 //16端口號 //網(wǎng)絡字節(jié)順序 struct in_addr sin_addr。 char sin_zero[8]。 //無用 }。 46 套接字基礎知識 —— IPv6套接字地址結構 IPv6套接字地址結構在 i/: struct in6_addr { uint8_t s6_addr[16]。 //128位 IPv6地址 }。 //網(wǎng)絡字節(jié)順序 struct sockaddr_in6{ uint8_t sin6_len。 //結構的長度 ( =24) sa_family_t sin6_family。 //AF_INET6 in_port_t sin6_port。 //16位端口號 //網(wǎng)絡字節(jié)順序 uint32_t sin6_flowinfo。 //優(yōu)先級和流標記 //網(wǎng)絡字節(jié)順序 struct in6_addr sin6_addr。 }。 47 套接字基礎知識 —— 一般套接字地址結構 一般的套接字地址結構在 sys/: struct sockaddr{ uint8_t sa_len。 //結構的長度 ( =16) sa_family_t sa_family。 //地址族: AF_xxx char sa_data[14]。 //協(xié)議特殊的地址 }。 套接字函數(shù)地址參數(shù)被定義成取得一般的套接字地址結構 , 例如下面的函數(shù): int bind (int , struct sockaddr *, socklen_t) 對它的調(diào)用應是如下: struct sockaddr_in serv。 bind (sockfd , (struct sockaddr *) serv , sizeof (serv))。 48 套接字基礎知識 —— 字節(jié)順序轉(zhuǎn)換 (1) 主機字節(jié)順序和網(wǎng)絡字節(jié)順序: 不同的機器 , 內(nèi)部對變量的字節(jié)存儲順序不同 。 有的系統(tǒng)是高位在前 , 低位在后;有的系統(tǒng)則是低位在前 , 高位在后 。 這種由特定系統(tǒng)定義的順序我們稱為主機字節(jié)順序 。 網(wǎng)絡協(xié)議要求在網(wǎng)絡傳輸?shù)臄?shù)據(jù)具有統(tǒng)一的順序 , 我們稱為網(wǎng)絡字節(jié)順序 。 49 套接字基礎知識 —— 字節(jié)順序轉(zhuǎn)換 (2) 有關的轉(zhuǎn)換函數(shù): include i/ uint16_t htons (uint16_t host16bitvalue)。 uint32_t htonl (uint32_t host32bitvalue)。 uint16_t ntohs (uint16_t 16bitvalue)。 uint32_t ntohl (uint32_t 32bitvalue)。 50 套接字基礎知識 —— IP地址轉(zhuǎn)換 (1) include arpa/ int i_aton (const char * strptr , struct in_addr *addrptr)。 //將 C字符串轉(zhuǎn)換成地址值 。 成功返回 1, 否則返回 0。 in_addr_t i_addr (const char * strptr)。 //將 C字符串轉(zhuǎn)換成地址值 。 成功返回該值 , 否則返回INADDR_NONE。 char *i_ntoa (struct in_addr inaddr)。 //將 32位二進制網(wǎng)絡字節(jié)順序 IPv4地址轉(zhuǎn)換成對應的帶小數(shù)點的十進制數(shù)字串 。 返回值將是該字符串 。 int i_pton (int family , const char * strptr , void *addrptr)。 //將 C字符串轉(zhuǎn)換成地址值 , 成功返回 1, 字符串格式不合法返回 0, 錯誤返回 1。 const char *i_ntop (int family , const void * addrptr , char *strptr , size_t len)。 //執(zhí)行與 i_pton相反的功能 。 失敗返回 NULL。 51 套接字基礎知識 —— IP地址轉(zhuǎn)換 (2) 關于 i_ntoa的一個例子: … char *a1,*a2。 struct in_addr inaddr1,inaddr2。 =htonl (0xD2220601)。 =htonl (0xD2220666)。 a1=i_ntoa (inaddr1)。 a2=i_ntoa (inaddr2)。 printf (“ address 1: %s \n” ,a1)。 printf (“ address 2: %s \n” ,a2)。 … 上面程序的返回值是: address 1: address 2: 52 套接字基礎知識 —— 字節(jié)處理函數(shù) include void bzero (void *dest , size_t nbytes)。 //將目標中特定數(shù)目的字節(jié)置 0。 void bcopy (const void *src , void *dest , size_t nbytes)。 //從源中拷貝特定數(shù)目的字節(jié)到目標中 。 int bcmp (const void *ptr1 , const void *ptr2 ,size_t nbytes)
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1