2016-04-25 53 views
0

我對網絡編程頗爲陌生,我想用C++創建一個簡單的非阻塞TCP服務器類。搜索後,我看到我可以使用Berkeley Sockets API來實現它,或者我可以使用外部庫,如Boost.AsioPOCO伯克利套接字API和C++網絡編程庫

我的問題是,在Berkeley套接字API中使用這些庫有什麼優缺點?

編輯:更具體地說,我不是在尋找什麼更容易處理,因爲這是我個人的觀點。我正在尋找表現等事實?處理多線程?也可能是來自expirienced程序員的其他方面。

+1

一個人的職業往往是另一個人的騙子。 – user4581301

回答

1

如果您想從C++使用C,請使用BSAPI。我不建議將它作爲工作習慣,但它可以幫助您更好地掌握tcp/ip/c-language的性質。缺點是你必須...寫C或搜索包裝庫。或者寫你自己的包裝。

如果您想用C++編寫代碼(使用C++),請使用Boost :: Asio/POCO。

如果您需要快速編碼,請使用更多高級庫。

這裏的另一個答案,但: Socket API or library for C++?

+3

我同意這句話:「如果需要快速編碼,請使用更多高級庫」,但需要注意:如果您不知道如何使用高級庫,那麼您可能不會獲得大大縮短了編碼時間。 – user4581301

+0

雖然好的高級庫通常可以更快地完成常見任務,並且可以更安全地執行低級別任務。 – strangeqargo

+1

絕對不會爭辯。踢球者是很好的圖書館。 POCO我從未使用過。 ASIO是相當不錯的,但如果你在伯克利插座和C上被提出或者什麼都不知道,那麼奇怪的因素是太棒了。真正的美麗是在你第三次使用圖書館的時候出現的。 – user4581301