2009-07-28 96 views
13

雖然我沒有專業的插座,我覺得它們很有趣。我讀了理查德史蒂文斯的Unix網絡編程的一部分(認爲是聖經,我認爲它是每個人都提到我問),但問題是這些例子需要一個通用頭文件unp.h,這是一個PIA使用。關於Unix/Linux套接字編程的好讀物?

你們中的一些人可以爲Unix/Linux中的套接字編程提供一個很好的讀法嗎?考慮到我是相對有經驗的C/C++編碼器。

回答

20

規範性引用文件是由W. Richard Stevens編寫的UNIX網絡編程。 upn.h實際上只是一個幫手頭,爲了使書中的例子更清晰 - 它沒有做任何特別的魔術。

要快速起牀並運行,很難超過Beej's Guide To Network Programming using Internet Sockets

+4

它已被所有和各種各樣的,我相信也有其他良好的閱讀。嘗試它的例子是PIA。我看到的問題是實例中給出的頭文件是實際函數的包裝,並不是學習API的方式。最重要的是,它們不會編譯(至少在我的系統上經過反覆失敗的嘗試) – rocknroll 2009-07-28 05:35:44

+0

你正在研究哪個Linux系統? Beej的頁面說Fedora Core(版本3 IIRC)... – 2009-07-28 07:48:59

12

我用Beej's Guide to Network Programming

有大量的客戶端和服務器代碼的例子與的每一步的解釋。

+0

+1:這是一個很棒的快速入門指南。應該足夠讓你編寫自己的隨機套接字驅動應用程序。 – ojrac 2009-07-28 14:26:25

1

APUE是熟悉unix環境以及unix環境中的C編程的好方法,以便您可以繼續使用套接字編程。

1

您可以參考我在很久以前教本科計算機科學課程教材,計算機網絡基礎,在ufl.edu我寫文章:"A Crash Course In Unix TCP/IP Socket Programming".

紙是舊的。我很驚訝,當我爲此而鬥爭時,仍然有六種引用。

這些年來,一些編譯器語義和必要的頭文件可能已經發生了一些變化,但是設置UDP或TCP套接字以及討論基本的DNS內容的基礎知識今天仍然有效。

祝你好運!

1

這似乎是進入游泳池或跳水頭首先進入深處的典型困境。

FWIW我發現Steven的包裝代碼也很煩人,我一直在努力爭取至少一些在我嘗試過的每個平臺上工作的例子。也就是說,這些包裝器大部分都隱藏着微不足道的錯誤處理,而這些錯誤處理本來就是重複的,沒有意義的,並且在一本已經很大的書中佔據了更多的空間。 (儘管公平,編輯們可以丟掉XTI的最後四分之一來騰出空間。)

網絡編程已經足夠深入了一個話題,您可以交替使用表面波和做炮彈。已經提到了幾個很好的快速入門來源,可以讓你通過「哇,我得到它工作」的階段。但是當你需要提升到「我需要它堅強和可靠,因爲我的工作/產品取決於它」階段時,你會欣賞史蒂文斯,疣和所有,因爲他不可思議的能力來預測你目前的問題。

史蒂文的工作有幾章我成功忽視了多年。但當我需要他們時,我確信他們在那裏。

1

W. Richard Stevens的UNIX Network Programming Volume 1/2是傳奇。

Ithilgore也在raw sockets上寫了非常詳細的文檔。另外,Beej的套接字編程指南寫得很好,簡單易懂,並且有明確的建議。

無論您閱讀什麼,請確保您編寫補充代碼。

0

也考慮更一般的參考, 的Unix™系統編程:通信,併發和線程 凱A.羅賓斯,羅賓斯史蒂芬 Prentice Hall的 ISBN:0-13-042411-0

不過,理查德·史蒂芬的書是對特定主題