2009-08-01 29 views
2

我想用C++做一些網絡套接字編程,並找到了C++ Sockets library如何使用C++套接字庫

首先,這是一個很好的方式去C + +?通常在C中,我會使用一些beej在his tutorial中描述的東西。

二,如何編譯網站上給出的例子?我無法從他們的安裝/配置指南中找到它。所以我把tar.gz下載到我的Linux機器上,然後呢?

有一個具體的例子,我該如何編譯和運行DisplaySocket example

謝謝。


編輯:謝謝你的快速答案。儘管如此。我沒有真正關注「理解」網絡編程,因爲我認爲我已經做得很好。我想知道是否有什麼特別要利用C++,並且 - 如果「C++套接字庫」是一個不錯的選擇 - 如何使用它。

+1

哇,該網站是webring的一部分。這很不錯。 – Eric 2009-08-01 11:25:08

+0

「我將tar.gz下載到我的Linux機器上,然後看起來像是將它解壓到任何你喜歡的地方,可能會修改makefile和配置文件(有關運行make的說明:http://www.alhem。 net/Sockets/tutorial/install.html,「下一頁」頁面上的配置文件)。然後運行make。然後將客戶端標題所在的目錄添加到代碼的包含路徑中,並將該目錄的生成目錄包含路徑。然後編譯你的代碼。 「你的代碼」可能就是這樣的例子。據我所知,這些例子已經制定了目標 - 如果是我編寫makefile文件,他們會... – 2009-08-01 22:00:17

回答

9

這不是「C++套接字庫」,它是「一個」C++套接字庫。 Boost.asio有另一個(http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio.html)。因爲我不能真正幫助你解決你的問題 - 我從來沒有編譯過你問過的代碼,所以我不知道在什麼時候你可能會因爲某個問題而絆倒。)。

3

使用基本套接字API(BSD或WinSock)而不是套接字庫可以更好地理解網絡編程,該套接字庫隱藏了有關套接字及其行爲的大部分複雜性。

+1

在原始套接字API上花費超過5分鐘是浪費時間。所有更多的東西都會教你,每個實現都有一些小錯誤,任何一個庫都會變得無關緊要。 「網絡編程」最好從一個模式控制和事件處理反轉的庫中學習。請參閱施密特的C++網絡編程書籍。 – keraba 2009-08-01 15:14:41

+0

哪個bug例如? – Indy9000 2009-08-01 15:25:15

0

我喜歡在使用C++編寫網絡代碼時使用ACE networking library。我認爲它做了一個很好的工作,將一些錯綜複雜的細節抽象出來,這使網絡編碼變得很痛苦,但並沒有達到隱藏發生了什麼的地步。它還具有通常爲任何項目所需的線程和消息傳遞的功能。

0

我會繼續對boost :: asio進行投票,因爲它封裝了當前首選模型的控制模型的反轉,並且似乎是標準綁定。要了解文檔沒有告訴你的是什麼,谷歌道格拉斯施密特和他的書。