首頁  >  文章  >  後端開發  >  [書評] Beej 的網路程式設計指南

[書評] Beej 的網路程式設計指南

王林
王林原創
2024-07-18 10:08:411194瀏覽

[Book Review] Beej

簡介 - 這本書是關於什麼的?

是的,我終於讀完了這本書。

身為一個在大學裡沒有學過電腦網路課程的人,我長期以來一直想集中學習這門學科。然而,我找不到向公眾開放的可靠大學課程(例如麻省理工學院的演算法導論)。許多以「簡介」為前綴的教科書花費了數百頁的篇幅來解釋相當低級的概念,例如路由演算法甚至連接大陸的實體線路!

然後我找到了網路上常推薦的Beej的網路程式設計指南。乍一看,我覺得這本書很容易閱讀,因為作者以幽默的方式解釋概念。但同時,與其他電腦網路書籍相比,這本書包含了許多程式碼範例,因此我認為它更適合想要實際進行套接字程式設計實踐的程式設計師。

讀完除了第9章之外的所有章節(因為它更像是一堆C套接字函數的參考),我發現它讀得很好。

好零件

友善介紹技術概念

本書從IP、連接埠、套接字等一些基本概念開始。然而,它並沒有深入介紹用於網路通訊的非常技術性的演算法或實體設備。作為一名每天處理 Web 應用程式的開發人員,我發現它與我的工作更相關。儘管這本書有時會提到位元和字節,但它仍然是可讀的,而且你在閱讀書中的 C​​ 程式碼時通常不會進行任何位元運算。

大量程式碼範例

對於那些想要親自接觸程式碼的人來說,這本書適合你。除了電腦網路的一般概述部分外,書中的大部分解釋都附帶了 C 程式碼範例。這對於了解 Web 應用程式中實際的網路通訊如何發生特別有用。例如,輪詢操作會掃描所有已註冊的套接字,檢查是否有傳入事件需要處理。

此外,這些範例不會匯入任何外部程式庫,因此您不必處理惱人的第三方依賴問題。

搜搜配件

主要專注於套接字編程

這本書非常適合作為套接字程式設計和相關係統呼叫的友善參考。然而,它不會“更高”或“更低”:

  • 「更高」:現今大多數 Web 應用程式都依賴 HTTP 協定。如果這本書包含更多關於這個更高層的解釋以及實際運行的程式碼,那就更好了。
  • 「lower」:我認為這本書可以使用 Wireshark 等工具來展示封包的外觀,這些工具可以抓取範例產生的封包。引入一些用於網路的 Linux/Unix 命令也有助於理解我們的應用程式程式碼如何與核心互動。

但是,我發現了另一個由同一作者寫的很好的資源:Beej's Guide to Networking Concepts。它似乎比這本書更全面地涵蓋了許多核心概念,並帶有大量編碼練習。我希望這本「概念」書能填補「程式設計」書的空白。

不建議不熟悉C代碼的人使用

如果您對 C 程式設計了解不多,這本書可能會讓您不知所措。它沒有解釋任何基本概念,例如指標或型別轉換。雖然我們不會像處理 CMake 時那樣遭受依賴地獄的困擾,但如果你對 C 不太了解,那麼閱讀程式碼仍然會很困難。

我個人對 C 程式碼沒問題。然而,如果這本書是用 Python 編寫的話,可能會更適合初學者,Python 的套接字庫中幾乎包含了 C 語言套接字函數的所有對應函數。同一個作者的「概念」書這次使用了Python,所以我們可以期待其中的樂趣。

結論

總的來說,本書充滿了實用的程式碼範例,在理解使用套接字系統呼叫的網路應用程式時非常有用。當然,在編寫自己的應用程式時,您實際上並不需要使用這些函數,因為許多語言都支援自己的那些「低階」套接字網路函數的包裝器(Python 有像socketserver 和http 這樣的函式庫) 。儘管如此,我認為一旦你成為開發人員,你就應該了解所有這些使用 HTTPS 或 websocket 的高度抽象通訊背後發生的事情。從這個意義上來說,這本書值得一讀,也是一本很好的參考書。

以上是[書評] Beej 的網路程式設計指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:開源專案更新下一篇:開源專案更新