大家好,我是小林。不知道大家當初是怎么學
網絡編程的?我來說說我踩過的坑。
我當初在學網絡編程的時候,看見網上的人都說 《Unix 網絡編程》 是網絡編程圣經,豆瓣評分也很高,那么好學的小林,那肯定毫無猶豫買了。
書到貨后,我瞬間就懵逼了,這本書的厚度堪比新華字典,這尼瑪怎么學?
跟著書本的節(jié)奏,學了一段的時間,是懂了些 Linux socket API 的用法,摸索來摸索去都是各個 API 的細節(jié),
始終不知道高并發(fā)網絡框架是如何實現的。
后面我又重新找了一波關于網絡編程的書,找到了這兩本:《TCP/IP 網絡編程》和《Linux高性能服務器編程》。
-
《TCP/IP 網絡編程》這個是網絡編程入門絕佳書,書里的內容不會有過多的術語,作者都用大白話來表達,配圖也很清晰,也有介紹我想知道的網絡框架,雖然是比較基礎的多進程服務端模型、多線程服務端模型、異步 IO 模型。而且最后一章實現了簡單的 HTTP 服務端,讓我知道了從代碼角度是怎么解析 HTTP 報文的,以及狀態(tài)機是如何實現和運轉的。
-
《Linux高性能服務器編程》這本書主要是網絡框架為主,前幾章關于網絡基礎知識對于掌握了計算機網絡知識的同學可以直接跳過的,你看,很多知識是想通的,當我們知道掌握了這塊知識后,在學習新一本書的時候,就可以跳過重疊的內容。在這本書我學到了,Reactor、Proactor、信號、定時器、多進程編程、多線程編程、進程池和線程池等。
通過這兩本讓我對網絡編程有了系統性的知識,然后在需要深入某個 sokcet 接口再去查《Unix 網絡編程》,沒錯這本厚的不行書就當做字典來用。
你看當初為了學個網絡編程,我走了那么多彎路。
但是,這些書大多數都是羅列知識點,并沒有結合工作來講。
后面,我就想找個跟工作息息相關的網絡編程的資料,后面我在極客時間找到了盛延敏的《
網絡編程實戰(zhàn)》專欄,分享給你一張,他總結的網絡編程的核心知識圖譜。