就當是迷你版的UNP吧

UNP很好,非常好,太好了。

UNIX/Linux下的網絡編程是無法避免Richard StevensUNP的。但是說實在的,UNP太厚實了,是滴,全面,細膩是很好滴,但是對於初學者們來說,往往更重要的是儘快對socket編程上手,我想基本上只有還算上過《計算機網絡》這門課的,對網絡基本原理,OSI模型,對TCP/IP基本概念還是有的吧,那麼接下來就可以寫socket,不一定要寫的多好多優雅,考慮多全面,作爲初學者,您不能要求自己太高,這並不是浮躁。對於學編程,尤其是定領域技術的編程,我一貫的主張就是要儘快統觀全局,對全局的每個部分最關鍵的概念、編程接口和編程結構有簡明但不失深入的瞭解,我竊稱之爲:第一階段。然後我們就有基礎和信心去啃大磚頭,比如UNP,同時進行深入的實踐和調試,這是第二階段第三階段,就是直接上項目吧,也可以去調調開源的代碼。 

第一階段,時間最好要控制在3~5天之內,當然像The Definitive Guide to Linux Network Programming(下面簡稱DGLNP)這樣的英文書,還是電子版的,就發揮下傳統美德,硬着頭皮一週最不濟10天看完吧。時間越短越不會遺忘,同時會覺得有閱讀的成就感。 

第二階段,就可以搬起UNP來啃了,花多少時間看自己的悟性吧。反正我還在-ing。這時候Stevens那種一絲不苟、細膩推敲、深入淺出,不但可以彌補之前第一階段留下的知識、經驗的漏洞,還可以潛移默化培養我們思維的嚴謹細膩品質。。。 
   
♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠♠

上面八卦了。DGLNP就是這樣一本適合第一階段的書,對於網絡編程,關鍵有三: 
   
   A. 要理解網絡組成原理與體系結構; 
   B. 要理解協議的特點及各種協議之間的關係/對比; 
   C. 有了前兩個,就要開始熟悉API運用。 
   
DGLNP
基本上就是按三個面來寫的。A算是最基本的了吧,比如俺們都搞CS的,不會connection-orientedconnectionless的概念都沒有吧,不管有沒有,作者告我們,Ethernet要懂吧,網絡地址要懂吧,TCP/UDP/IP是啥,必須滴對於B,這本書沒特地的講,而是揉合在C裏面一起講,這也靠譜,其實也簡單,說白了就是TCP是面向連接的可靠報文服務,UDP不可靠,它們又都以IP datagram爲基礎。反映到編程接口(API)上,程序怎麼表示這些概念,怎麼描述這些不同呢?知道程序的表示法——而不是俺們銀類的自然語法描述法——之後,就完全可以大刀長槍搞具體運用了,於是自然而然引入client-server模型了,再挖掘Unix/Linux系統特點——尤其,I/O..... 

我喜歡簡潔直接,喜歡扼要。尤其是初入門的時候。。當然,話還得說回來,UNIX/Linux 網絡編程是水很深的東西,所以標題說了,就當是迷你版的UNP吧。任重而道遠。程序猿的腳步是不會停的。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章