在網路程式設計領域(注意不是web程式設計),幾乎每天都與socket打交道。然而不知如何,國人竟把socket翻譯成了「套接字」。socket的原意是指電源插座,而「套接字」為何物?
雖然這種翻譯已經被絕大多數國人認可,可這也恰恰給網路程式設計的入門及其本質的理解造成了難以理解的巨大惡果。還是先讓我們來看看插座吧。
小王裝修房子,第一天,為了用電,必須找一根電纜從變電站把電引入家中。也就是家裡用電的總**要有啊。
第二天,小王買來了電冰箱,為了給電冰箱供電,必須先買乙個插座,並把插座接到第一天引入的電源線上。剩下來就簡單了,因為有了插座(socket),把冰箱的電源插頭插入就ok了。
第三天,熱愛計算機的小王買來了心愛的電腦,可這下就犯愁了,怎麼供電呢?好辦,又買了乙個插座(socket)並接到電源線上,把電腦的插頭插入socket,電腦終於可以正常使用了。
第四天,小王又買來了電視機,同樣乙個socket,又讓電視機順利地工作了。
第五天,第六天...按照同樣的方法,小王通過乙個又乙個的插座(socket),完成了所有電器的供電。
看完了這個例子,再想想網路程式設計,簡直是如出一轍。
為了連上網路,必須要有網絡卡(總電源),這樣網路上的資料便可以到達你的計算機了。可是你的應用程式如何取得這些網路資料呢,很簡單,建立乙個socket,並連到網絡卡上,好了這下你就可以從插座裡取得資訊了。無論何時你想取得網路資料只需連線乙個socket即可。
看看,socket這個詞,用到網路程式設計api上是何等的形象!足見創始人對網路程式設計模型的準確把握和良苦用心。然而我們的翻譯者卻把這麼好的乙個術語弄成了「套接字」,本來很簡單直觀的網路程式設計被蒙上了一層複雜深奧的迷霧。