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

首頁 > 系統 > Linux > 正文

詳解Linux Socket編程(不限Linux)

2019-11-02 16:38:20
字體:
來源:轉載
供稿:網友

我們深諳信息交流的價值,那網絡中進程之間如何通信,如我們每天打開瀏覽器瀏覽網頁時,瀏覽器的進程怎么與web服務器通信的?當你用QQ聊天時,QQ進程怎么與服務器或你好友所在的QQ進程通信?這些都得靠socket?那什么是socket?socket的類型有哪些?還有socket的基本函數,這些都是本文想介紹的。本文的主要內容如下:

1、網絡中進程之間如何通信?

本地的進程間通信(IPC)有很多種方式,但可以總結為下面4類:

消息傳遞(管道、FIFO、消息隊列) 同步(互斥量、條件變量、讀寫鎖、文件和寫記錄鎖、信號量) 共享內存(匿名的和具名的) 遠程過程調用(Solaris門和Sun RPC)

但這些都不是本文的主題!我們要討論的是網絡中進程之間如何通信?首要解決的問題是如何唯一標識一個進程,否則通信無從談起!在本地可以通過進程PID來唯一標識一個進程,但是在網絡中這是行不通的。其實TCP/IP協議族已經幫我們解決了這個問題,網絡層的“ip地址”可以唯一標識網絡中的主機,而傳輸層的“協議+端口”可以唯一標識主機中的應用程序(進程)。這樣利用三元組(ip地址,協議,端口)就可以標識網絡的進程了,網絡中的進程通信就可以利用這個標志與其它進程進行交互。

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

2、什么是Socket?

上面我們已經知道網絡中的進程是通過socket來通信的,那什么是socket呢?socket起源于Unix,而Unix/Linux基本哲學之一就是“一切皆文件”,都可以用“打開open

主站蜘蛛池模板: 洪洞县| 汕尾市| 宁明县| 榆社县| 河南省| 二手房| 襄汾县| 文山县| 兴安县| 安阳市| 讷河市| 原平市| 苍溪县| 木兰县| 探索| 鄢陵县| 米易县| 萝北县| 永德县| 营山县| 华坪县| 个旧市| 乐至县| 华池县| 甘南县| 察哈| 板桥市| 静海县| 娱乐| 汉川市| 香港| 阳江市| 当涂县| 祁门县| 屏山县| 油尖旺区| 龙泉市| 沙洋县| 全椒县| 万年县| 高台县|