1. 程式人生 > >socket的定義與使用場景

socket的定義與使用場景

socket的定義&&使用場景:
(一)socket的使用場景:
如:瀏覽器程序與web伺服器程序通訊;
如:QQ程序與好友的QQ程序通訊;


(二)本地的程序通訊 && 網路上的程序通訊:
(1)本地的程序通訊:


本地的程序間通訊(IPC)有很多種方式,但可以總結為下面3類:
1.訊息傳遞(管道、FIFO、訊息佇列)
2.同步(互斥量、條件變數、讀寫鎖、檔案和寫記錄鎖、訊號量)
3.共享記憶體(匿名的和具名的)


(3)標識一個程序:
在本地可以通過程序PID來唯一標識一個程序,但是在網路中這是行不通的。
網路層的“ip地址”可以唯一標識網路中的主機,而傳輸層的“協議+埠”可以唯一標識主機中的應用程式(程序)。這樣利用三元組(ip地址,協議,埠)就可以標識網路的程序了。


(2)網路上的程序通訊:
使用TCP/IP協議的應用程式通常採用應用程式設計介面:UNIX  BSD的套接字(socket)。


(三)socket的定義:
socket起源於Unix,而Unix/Linux基本哲學之一就是“一切皆檔案”,都可以用“開啟open –> 讀寫write/read –> 關閉close”模式來操作。我的理解就是Socket就是該模式的一個實現,socket即是一種特殊的檔案,一些socket函式就是對其進行的操作(讀/寫IO、開啟、關閉)