被譯名掩蓋了本質(zhì)的socket
在網(wǎng)絡(luò)編程領(lǐng)域(注意不是Web編程),幾乎每天都與socket打交道。然而不知如何,國人竟把socket翻譯成了“套接字”。socket的原意是指電源插座,而“套接字”為何物?
雖然這種翻譯已經(jīng)被絕大多數(shù)國人認(rèn)可,可這也恰恰給網(wǎng)絡(luò)編程的入門及其本質(zhì)的理解造成了難以理解的巨大惡果。還是先讓我們來看看插座吧。
對于電源插座,相信大家都不會陌生了。看看下面這個再簡單不過的生活經(jīng)歷:
小王裝修房子,第一天,為了用電,必須找一根電纜從變電站把電引入家中。也就是家里用電的總來源要有啊。
第二天,小王買來了電冰箱,為了給電冰箱供電,必須先買一個插座,并把插座接到第一天引入的電源線上。剩下來就簡單了,因為有了插座(socket),把冰箱的電源插頭插入就OK了。
第三天,熱愛計算機(jī)的小王買來了心愛的電腦,可這下就犯愁了,怎么供電呢?好辦,又買了一個插座(socket)并接到電源線上,把電腦的插頭插入socket,電腦終于可以正常使用了。
第四天,小王又買來了電視機(jī),同樣一個socket,又讓電視機(jī)順利地工作了。
第五天,第六天...按照同樣的方法,小王通過一個又一個的插座(socket),完成了所有電器的供電。
看完了這個例子,再想想網(wǎng)絡(luò)編程,簡直是如出一轍。
為了連上網(wǎng)絡(luò),必須要有網(wǎng)卡(總電源),這樣網(wǎng)絡(luò)上的數(shù)據(jù)便可以到達(dá)你的計算機(jī)了??墒悄愕膽?yīng)用程序如何取得這些網(wǎng)絡(luò)數(shù)據(jù)呢,很簡單,建立一個socket,并連到網(wǎng)卡上,好了這下你就可以從插座里取得信息了。無論何時你想取得網(wǎng)絡(luò)數(shù)據(jù)只需連接一個socket即可。
看看,socket這個詞,用到網(wǎng)絡(luò)編程API上是何等的形象!足見創(chuàng)始人對網(wǎng)絡(luò)編程模型的準(zhǔn)確把握和良苦用心。然而我們的翻譯者卻把這么好的一個術(shù)語弄成了“套接字”,本來很簡單直觀的網(wǎng)絡(luò)編程被蒙上了一層復(fù)雜深奧的迷霧。
注意:當(dāng)然網(wǎng)絡(luò)編程中的Socket與電源插座有一定的差別,網(wǎng)絡(luò)中的socket種類和功能更多更強(qiáng),但是其本質(zhì)是一樣的。按照插座來理解網(wǎng)絡(luò)編程,將非常的自然清晰。