socket起源於unix,而unix/linux基本模式就是「一切皆檔案」,都可以用「開啟open –> 讀寫write/read –> 關閉close」模式來操作。socket也是該模式的實現,即:socket也是一種特殊的檔案,socket的api函式就是對socket物件進行檔案操作(讀/寫io、開啟、關閉)。來實現通訊的。
socket()函式返回乙個整型的socket描述符,隨後的連線建立、資料傳輸等操作都是通過該socket實現的。
socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,socket它是一組介面。socket是運用設計模式中的門面模式,把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。
有很多種方式,但可以總結為4類:
訊息傳遞(管道、fifo、訊息佇列)
同步(互斥量、條件變數、讀寫鎖、檔案和寫記錄鎖、訊號量)
共享記憶體(匿名的和命名的)
遠端過程呼叫(solaris門和sun rpc)
標識程序用ip+埠號
首要解決的問題是如何唯一標識乙個程序,否則通訊無從談起!在本地可以通過程序pid來唯一標識乙個程序,但是在網路中靠的是網路層的「ip位址」來唯一標識網路中的主機,而傳輸層的「協議+埠」可以唯一標識主機中的應用程式(程序)。這樣利用三元組(ip位址,協議,埠)就可以標識網路的程序了,網路中的程序通訊就可以利用這個標誌與其它程序進行互動。
使用tcp/ip協議的應用程式通常採用應用程式設計介面:unix bsd的套接字(socket),來實現網路程序之間的通訊。就目前而言,幾乎所有的應用程式都是採用socket,而現在又是網路時代,網路中程序通訊是無處不在,這就是為什麼說「一切皆socket」。
Ipc通訊機制 socket的 概念
socket通訊 用來實現程序間通訊。也被稱為套接字 是網路通訊中的概念,分為流式套接字 和 使用者套接字 兩種 對應網路傳輸控制層的 tcp 和udp 協議 tcp 協議 是面向連線的協議 提供穩定的雙向通訊功能。連線建立需要經過 三次握手 tcp 協議 為了資料傳輸功能的穩定,提供超時重傳機制,...
Socket 通訊的概念性過程
1.socket 通訊tcp方式一般流程圖 服務端 客戶端 socket socket setsockopt bind connect listen recv send write accept recv send read setsockopt的可用level為sol socket option為...
socket通訊程式設計
1 socket通訊模型如下 應用程式通過套接字可以進行通訊,可以使用udp協議或者使用tcp協議,當客戶端和伺服器端的協議時相對應的,客戶端使用tcp,那麼伺服器端使用tcp 2 udp協議 把資料打包成資料報,然後直接傳送對應的ip位址,速度快,但是不保證 成功率,並且資料大小有限 tcp協議 ...