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

正文內(nèi)容

linux環(huán)境進(jìn)程間通信(六)套接字(已修改)

2025-07-01 14:14 本頁面
 

【正文】 Linux 環(huán)境進(jìn)程間通信(六):套接字20080410 13:16在本專題的前面幾個(gè)部分,如消息隊(duì)列、信號燈、共享內(nèi)存等,都是基于Sys V的IPC機(jī)制進(jìn)行討論的,它們的應(yīng)用局限在單一計(jì)算機(jī)內(nèi)的進(jìn)程間通信;基于BSD套接口不僅可以實(shí)現(xiàn)單機(jī)內(nèi)的進(jìn)程間通信,還可以實(shí)現(xiàn)不同計(jì)算機(jī)進(jìn)程之間 的通信。本文將主要介紹BSD套接口(sockets),以及基于套接口的重要而基本的API。一個(gè)套接口可以看作是進(jìn)程間 通信的端點(diǎn)(endpoint),每個(gè)套接口的名字都是唯一的(唯一的含義是不言而喻的),其他進(jìn)程可以發(fā)現(xiàn)、連接并且與之通信。通信域用來說明套接口通 信的協(xié)議,不同的通信域有不同的通信協(xié)議以及套接口的地址結(jié)構(gòu)等等,因此,創(chuàng)建一個(gè)套接口時(shí),要指明它的通信域。比較常見的是unix域套接口(采用套接 口機(jī)制實(shí)現(xiàn)單機(jī)內(nèi)的進(jìn)程間通信)及網(wǎng)際通信域。背景知識linux目前的網(wǎng)絡(luò)內(nèi)核代碼主要基于伯克利的BSD的unix實(shí)現(xiàn),整個(gè)結(jié)構(gòu)采用的是一種面向?qū)ο蟮姆謱訖C(jī)制。層與層之間有嚴(yán)格的接口定義。這里我們引用[1]中的一個(gè)圖表來描述linux支持的一些通信協(xié)議:我們這里只關(guān)心IPS,即因特網(wǎng)協(xié)議族,也就是通常所說的TCP/IP網(wǎng)絡(luò)。我們這里假設(shè)讀者具有網(wǎng)絡(luò)方面的一些背景知識,如了解網(wǎng)絡(luò)的分層結(jié)構(gòu),通常所說的7層結(jié)構(gòu);了解IP地址以及路由的一些基本知識。目 前l(fā)inux網(wǎng)絡(luò)API是基于BSD套接口的(系統(tǒng)V提供基于流I/O子系統(tǒng)的用戶接口,但是linux內(nèi)核目前不支持流I/O子系統(tǒng))。套接口可以說是 網(wǎng)絡(luò)編程中一個(gè)非常重要的概念,linux以文件的形式實(shí)現(xiàn)套接口,與套接口相應(yīng)的文件屬于sockfs特殊文件系統(tǒng),創(chuàng)建一個(gè)套接口就是在sockfs 中創(chuàng)建一個(gè)特殊文件,并建立起為實(shí)現(xiàn)套接口功能的相關(guān)數(shù)據(jù)結(jié)構(gòu)。換句話說,對每一個(gè)新創(chuàng)建的BSD套接口,linux內(nèi)核都將在sockfs特殊文件系統(tǒng) 中創(chuàng)建一個(gè)新的inode。描述套接口的數(shù)據(jù)結(jié)構(gòu)是socket,將在后面給出。重要數(shù)據(jù)結(jié)構(gòu)下面是在網(wǎng)絡(luò)編程中比較重要的幾個(gè)數(shù)據(jù)結(jié)構(gòu),讀者可以在后面介紹編程API部分再回過頭來了解它們。(1)表示套接口的數(shù)據(jù)結(jié)構(gòu)struct socket套接口是由socket數(shù)據(jù)結(jié)構(gòu)代表的,形式如下:struct socket{socket_state state。 /* 指明套接口的連接狀態(tài),一個(gè)套接口的連接狀態(tài)可以有以下幾種套接口是空閑的,還沒有進(jìn)行相應(yīng)的端口及地址的綁定;還沒有連接;正在連接中;已經(jīng)連接;正在解除連接。 */ unsigned long flags。 struct proto_ops ops。 /* 指明可對套接口進(jìn)行的各種操作 */ struct inode inode。 /* 指向sockfs文件系統(tǒng)中的相應(yīng)inode */ struct fasync_struct *fasync_list。 /* Asynchronous wake up list */ struct file *file。 /* 指向sockfs文件系統(tǒng)中的相應(yīng)文件 */struct sock sk。 /* 任何協(xié)議族都有其特定的套接口特性,該域就指向特定協(xié)議族的套接口對象。 */ wait_queue_head_t wait。 short type。 unsigned char passcred。}。(2)描述套接口通用地址的數(shù)據(jù)結(jié)構(gòu)struct sockaddr由于歷史的緣故,在bind、connect等系統(tǒng)調(diào)用中,特定于協(xié)議的套接口地址結(jié)構(gòu)指針都要強(qiáng)制轉(zhuǎn)換成該通用的套接口地址結(jié)構(gòu)指針。結(jié)構(gòu)形式如下:struct sockaddr { sa_family_t sa_family。 /* address family, AF_xxx */ char sa_data[14]。 /* 14 bytes of protocol address */}。(3)描述因特網(wǎng)地址結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)struct
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1