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