国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

詳解Linux的SOCKET編程

2020-01-26 15:00:01
字體:
供稿:網(wǎng)友

本篇文章對Linux的SOCKET編程進(jìn)行了詳細(xì)解釋,文章后面分享了一個編程實例供大家學(xué)習(xí)。

1. 網(wǎng)絡(luò)中進(jìn)程之間如何通信
進(jìn)程通信的概念最初來源于單機(jī)系統(tǒng)。由于每個進(jìn)程都在自己的地址范圍內(nèi)運行,為保證兩個相互通信的進(jìn)程之間既互不干擾又協(xié)調(diào)一致工作,操作系統(tǒng)為進(jìn)程通信提供了相應(yīng)設(shè)施,如

UNIX BSD有:管道(pipe)、命名管道(named pipe)軟中斷信號(signal)

UNIX system V有:消息(message)、共享存儲區(qū)(shared memory)和信號量(semaphore)等.

他們都僅限于用在本機(jī)進(jìn)程之間通信。網(wǎng)間進(jìn)程通信要解決的是不同主機(jī)進(jìn)程間的相互通信問題(可把同機(jī)進(jìn)程通信看作是其中的特例)。為此,首先要解決的是網(wǎng)間進(jìn)程標(biāo)識問題。同一主機(jī)上,不同進(jìn)程可用進(jìn)程號(process ID)唯一標(biāo)識。但在網(wǎng)絡(luò)環(huán)境下,各主機(jī)獨立分配的進(jìn)程號不能唯一標(biāo)識該進(jìn)程。例如,主機(jī)A賦于某進(jìn)程號5,在B機(jī)中也可以存在5號進(jìn)程,因此,“5號進(jìn)程”這句話就沒有意義了。 其次,操作系統(tǒng)支持的網(wǎng)絡(luò)協(xié)議眾多,不同協(xié)議的工作方式不同,地址格式也不同。因此,網(wǎng)間進(jìn)程通信還要解決多重協(xié)議的識別問題。

其實TCP/IP協(xié)議族已經(jīng)幫我們解決了這個問題,網(wǎng)絡(luò)層的“ip地址”可以唯一標(biāo)識網(wǎng)絡(luò)中的主機(jī),而傳輸層的“協(xié)議+端口”可以唯一標(biāo)識主機(jī)中的應(yīng)用程序(進(jìn)程)。這樣利用三元組(ip地址,協(xié)議,端口)就可以標(biāo)識網(wǎng)絡(luò)的進(jìn)程了,網(wǎng)絡(luò)中的進(jìn)程通信就可以利用這個標(biāo)志與其它進(jìn)程進(jìn)行交互。

使用TCP/IP協(xié)議的應(yīng)用程序通常采用應(yīng)用編程接口:UNIX  BSD的套接字(socket)和UNIX System V的TLI(已經(jīng)被淘汰),來實現(xiàn)網(wǎng)絡(luò)進(jìn)程之間的通信。就目前而言,幾乎所有的應(yīng)用程序都是采用socket,而現(xiàn)在又是網(wǎng)絡(luò)時代,網(wǎng)絡(luò)中進(jìn)程通信是無處不在,這就是我為什么說“一切皆socket”。


2. 什么是TCP/IP、UDP

   TCP/IP(Transmission Control Protocol/Internet Protocol)即傳輸控制協(xié)議/網(wǎng)間協(xié)議,是一個工業(yè)標(biāo)準(zhǔn)的協(xié)議集,它是為廣域網(wǎng)(WANs)設(shè)計的。   

   TCP/IP協(xié)議存在于OS中,網(wǎng)絡(luò)服務(wù)通過OS提供,在OS中增加支持TCP/IP的系統(tǒng)調(diào)用――Berkeley套接字,如Socket,Connect,Send,Recv等

   UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議。它是屬于TCP/IP協(xié)議族中的一種。如圖:

   TCP/IP協(xié)議族包括運輸層、網(wǎng)絡(luò)層、鏈路層,而socket所在位置如圖,Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層。

3. Socket是什么

1、socket套接字:
     socket起源于Unix,而Unix/Linux基本哲學(xué)之一就是“一切皆文件”,都可以用“打開open

主站蜘蛛池模板: 时尚| 宁津县| 响水县| 奉贤区| 泸水县| 马龙县| 安顺市| 西乌| 天柱县| 庄河市| 井研县| 富阳市| 宜兰县| 阜平县| 望奎县| 武夷山市| 施秉县| 德清县| 永昌县| 泰和县| 烟台市| 井研县| 长春市| 广灵县| 张掖市| 慈溪市| 上蔡县| 临桂县| 楚雄市| 景宁| 稷山县| 丹巴县| 武山县| 江孜县| 无极县| 城固县| 乌兰浩特市| 和顺县| 灯塔市| 泸水县| 邛崃市|