當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 談?wù)剆ocket 套接字
1.socket 是什么?
先說(shuō)說(shuō)這個(gè)單詞的意思吧!
看看有道詞典給出的解釋:
這是我們生活中用到的插座
實(shí)際上翻譯成"插口"可能更好理解!
但是現(xiàn)在很多書都翻譯成"套接字",實(shí)際上翻譯成"套接口"更易理解些,
在UNIX Network Programming 1 volume 3th edition中文版page 7下面的譯者注釋中,譯者也注意了這個(gè)問(wèn)題。譯者認(rèn)為這個(gè)詞譯作“套接口”更為合適。
知乎上也有人提出了這個(gè)問(wèn)題,
Socket為什么要翻譯成套接字? - 知乎
實(shí)際上本身的socket的的作用很明顯,就是實(shí)現(xiàn)連接的的!
自己畫了一個(gè)簡(jiǎn)圖:
圖上反映的是我們的兩臺(tái)電腦想通過(guò) internet來(lái)實(shí)現(xiàn)通信,那么必須先保證兩臺(tái)電腦連接到internet中,通過(guò)什么連呢,物理上我們常用的就是"網(wǎng)線",插到"網(wǎng)口"中就可以實(shí)現(xiàn)上網(wǎng)的功能了!
而這就是socket本身含義的體現(xiàn)!
圖中的的網(wǎng)線接口,我們就可以理解為"socket" ---這是其本意
那么為什么要翻譯成"套接字"呢?
這個(gè)我們得分開來(lái)看,首先得先理解"套接"二字
但是經(jīng)過(guò)百度搜索并無(wú)單純的"套接"二字的解釋
倒是找到了一個(gè)叫做"套接管"的東西
先上圖:
實(shí)際上就是來(lái)源與上面的這種情形,實(shí)現(xiàn)兩個(gè)管子的連接,起作用的就是中間的套管!
我們姑且可以武斷的下個(gè)解釋:
所謂"套接" ---- 就是 "套到一塊,接起來(lái)"的意思!
那么,推而廣之,
"套接字 " ---- "就是起套接(連接)作用的 文件描述字"的簡(jiǎn)稱 (注:File Descriptors文件描述符或是文件描述字 )
總結(jié):
socket 本身是英文單詞的 "插座""插口"的意思,關(guān)鍵是領(lǐng)悟到其核心的作用,是媒介,或者叫中介
實(shí)現(xiàn)的是連接的作用!
所以中文在翻譯的時(shí)候,翻譯成了"套接字",是取其"套接(連接)"含義的!也是充分站在老外的角度來(lái)理解和翻譯的!
溫馨提示:以上內(nèi)容,多是杜撰,鮮有考證(精力有限,準(zhǔn)本溯源,可能也是無(wú)功而返,如果您是強(qiáng)迫癥患者,請(qǐng)到這看看,也許可以緩解一下,Socket為什么要翻譯成套接字? - 知乎 )
了解到上面的含義之后我們來(lái)看一下,計(jì)算機(jī)中網(wǎng)絡(luò)編程中的socket是什么呢!是如何起到所謂"套接"的作用的呢?
linux下 對(duì)socket的描述有兩句話
(1).socket 是一個(gè)特殊的文件
(2).socket是一個(gè)應(yīng)用編程接口
2.為什么說(shuō)socket是一個(gè)特殊的文件?---基于文件描述符的
對(duì)應(yīng)的層次結(jié)構(gòu)