標籤:

小弟做c++伺服器差不多一年了,用ace框架的,還沒什麼信心,還很菜,請教各位大神如何提升進階啊?


自己實現一個網路框架試試看?

第一個階段:

搞清楚Tcp和Udp的區別,知道Tcp的各種控制包是如何起作用的,現在Tcp的用處比較大

搞清楚非同步Socket網路操作下各種返回值的含義。 熟練使用套接字編程。

搞清楚Epoll事件輪訓

搞清楚Epoll ET的用法,儘管大家都不建議使用ET

自己實現定時器 紅黑樹 小根堆 時間輪 常見演算法都要熟悉

優化內存Copy和系統調用 並調試性能的差異

搞清楚常見的協議 從Telnet Http Dns Smtp Icmp等等協議

實現多線程框架,並可以在Epoll EventLoop線程切換等等

了解linux fork實現多進程框架,了解驚群等等和解決方法

第二個階段:

如何優化和解除各種耦合? 程序耦合和編譯器耦合?比如當你這個底層庫需要改動的時候如何可以減少業務代碼的改動,或者減少對此依賴的庫的編譯。


謝邀~~

但這問題暫時不好回答,因為提問的目標不明確。C++伺服器,要進階,我想知道你的目標是啥?

是自己實現網路引擎/RPC框架?還是使用C++開發基礎服務伺服器/業務邏輯伺服器/web CGI伺服器,不論是用什麼RPC框架?還是深入使用ACE框架進行開發?

因為不同的細分目標道路越到後面越不相同。陳果果果果果棟 回答的是第一種情況,但我所了解到的,大部分人都是第二種情況。

還有,沒有信心,是為什麼沒有?是哪裡遇到問題或者瓶頸?總有原因才會讓你感到沒有信心。

如何提升進階?目前哪裡遇到了瓶頸,主要是哪方面上不去,想提升?

泛泛而答的話,東西太多太瑣碎。我就不說了。等你update。


ACE,學之者生,用之者死!如題,建議Boost.asio做項目!


建議轉 asio


cppcon里有人說在弄coroutine,性能超強。


沒什麼信心的原因是因為你在用ACE吧…


ACE過於龐當了

建議看看boost里的asio


別聽他們瞎說。

看書打基礎才是真正的晉陞之道。


哥們 你扣扣多少啊 請教下ACE


推薦閱讀:

計算機專業C++應該怎麼教?
計算機中缺失MSVCP120D.dll和MSVCR120D.dll怎麼解決?
多幀圖片的數據存儲的問題?
從項目管理上來說,C++ 是否適合做大的項目?
學編程主要是學習什麼(學習重點是什麼?)

TAG:伺服器 | C |