C 網路程式設計方面的開源專案

2021-07-26 18:28:32 字數 2023 閱讀 6103

nginx: download 高效能web伺服器

libevent/libevent · github c語言寫的事件驅動框架

ace :c++物件導向網路程式設計工具包

boost.asio :用於網路和底層i/o程式設計的跨平台的c++庫

casablanca :c++ rest sdk

cpp-netlib :高階網路程式設計的開源庫集合

dyad.c :c語言的非同步網路

libcurl :多協議檔案傳輸庫

mongoose :非常輕量級的網路伺服器

muduo :用於linux多執行緒伺服器的c++非阻塞網路庫

net_skeleton :c/c++的tcp 客戶端/伺服器庫

nope.c :基於c語言的超輕型軟體平台,用於可擴充套件的伺服器端和網路應用。 對於c程式設計人員,可以考慮node.js

onion :c語言http伺服器庫,其設計為輕量級,易使用。

poco :用於構建網路和基於網際網路應用程式的c++類庫,可以執行在桌面,伺服器,移動和嵌入式系統。

raknet :為遊戲開發人員提供的跨平台的開源c++網路引擎。

tuf o :用於qt之上的c++構建的非同步web框架。

websocket++ :基於c++/boost aiso的websocket 客戶端/伺服器庫

zeromq :高速,模組化的非同步通訊庫

這個**整理的比較全,介紹c和c++的專案: 值得推薦的c/c++框架和庫

應邀答題,很好奇這樣中規中矩的題目為啥要匿名。

首先說說「適合學生參與」。參與開源專案的開發者,來自各行各業的都有,並沒有哪些開源專案學生的比例明顯高於其它專案的。至於 gsoc,其專案也不是單獨為學生專門設計的,都只是從標準的開源專案裡選出一些工作量大小適中的子專案專門讓學生參與而已。如果硬要說學生和其它開發者有什麼不同的話,那就是學生的時間比其它行業的人會更充足一些,功利性會弱一些,貢獻可以更加不計回報一些。因此,並不存在什麼專案更「適合學生參與」的說法,只要你願意,任何專案都是可以參加的。

然後說說「c++」。由於 c++ 學習難度太大,各種複雜特性太多,要想在專案中把 c++ 用好,一方面需要所有開發者都具備比較紮實的功底,另一方面還需要開發者彼此之間建立嚴格的規範和約定。對於以公司的形式進行的開發而言,這兩個條件比較容易滿足,只要通過招聘設定門檻,通過規章制度限制開發流程就行。但對於開源專案這種形式的開發而言,為了保證這兩個條件,專案必然表現出很強的排外性,開源的 c++ 專案往往對於外部貢獻者的接納程度要低於其它語言的專案,想要真正參與到乙個開源 c++ 專案裡是非常困難的。因此,在選擇專案的時候,不要把目光集中在 c++ 專案上,其它語言的專案也一樣可以參與。

當然,網路操作佔整個**庫較大比率的專案實際上也是存在的。不過這種型別的專案,處理的大多是大資料量、海量客戶、高負載、高併發之類的問題,這些難度就非常大了。然而這些問題,如果不是在具體工作中遇到非常具體的應用場景的話,光憑想象和少量幾台電腦做實驗是完全無法理解掌握的。既然在學生階段很難有機會去接觸這方面內容,不如先把基礎知識學好,基本功掌握更牢靠一些,把這部分知識留到工作之後再學。

最後回到我們最初的問題上,把「適合學生參與」、「c++」和「網路程式設計」這三個限制條件都去掉之後,問題就變成了「有哪些開源專案」了。這個問題回答很容易:直接上 http:// sf.net 或 http:// code.google.com 搜一搜,能找到無數的開源專案,選擇麵是非常廣的。至於「如何參與乙個開源專案」,那又是另外乙個不同的問題,如果感興趣的話可以新開乙個話題單獨討論,這裡就不多說了。

網路程式設計看題主準備寫什麼東西了,寫不同的東西用不同的框架。

如果題主願意參與進來我表示非常歡迎。如果題主想參與其他專案,這裡有個小小的建議:盡量參與國人(特指用中文交流)的專案,避免交流上的困擾,把精力都放在專案上。以上

網路程式設計和c++完全是兩回事,前者只要明白webservice 怎樣運作, 然後套用api就好了。本身是沒有太多挑戰的, 除非涉及到複雜的演算法來提高效能,但那是另外一回事。 c++的話需要很好的程式設計功底,是很要求對low level programming良好的掌握。 可以關注一下google for students每年的活動

來自: 

專案方面的做人處事

一專案計畫 1.專案計畫並不是一邊將自己所熟悉的工作內容留給自己一邊不停的說這個工作量太大,讓mm來協助,你要這樣的話我建議你當老總找個秘書。2.開會 開會的目的是解決問題,不是休息,不是乙個會可以開它半天,要講究效率 開會時在討論大家所關心的問題,而不是幾個組員的問題,如果幾個人有問題可以會後來解...

Spring Aop 面向方面的程式設計

spring aop 面向方面的程式設計 基於annotation的aop 1 在ioc的beans下新增開啟aop的語句 自動開啟aop 2 建立乙個動態 類 3 匯入aspect包 4 在類上面宣告aspect切面類 aspect 5 在方法上面加入pointcut說明 新增execution說...

面向方面的程式設計 AOP

物件導向的程式設計 oop 中常用的概念是 繼承 封裝 多型。在面向方面的程式設計 aop 中常使用的概念是 advices interceptors,introductions,metadata,and pointcuts。aop 面向方面程式設計的介紹 面向方面的程式設計思路很簡單。從面向過程 ...