1、同樣是C/C++開發,伺服器端和客戶端差別大嗎? 如果一直做客戶端,跳槽去做伺服器端,能立即上手嗎?
其實差異不大。
客戶端一般包括UI和後台。後台主要是發送和接收UI傳來和伺服器端傳來的控制信息。
伺服器端一般只有後台和基本的命令行。主要就是接收客戶端的控制信息和發送給客戶端控制信息。比客戶端後台多的就是處理客戶端發來的信息。
2、C/C++ 有哪些適合快速開發的socket伺服器框架
如果有 C++ 背景可以考慮用 Thrift,這個需要伺服器和客戶端一起使用。
如果只考慮伺服器,Go 和 NodeJS 都是不錯的選擇,看看官方的例子就已經比較清楚了。
至於 socket 連接的穩定性,主要還是在於 TCP 心跳檢測和數據重傳做的好不好,對於信道不好的情況,比如使用 3G 卡做聯網時,要每隔幾十秒就發一個沒有數據的心跳包,保證盡早檢測到斷線請求,盡早重連。伺服器端性能應該問題不大,就算設備每秒鍾都發數據只要業務不太復雜就不會遇到什麼瓶頸。
3、如何用C語言開發一個通用web伺服器?
用C語言開發WEB,可以用C++BUILDER6,稱ISAPI,一般人可能做不起來,有點麻煩;
唯一是速度很快,別人看不到源碼,掌握了編程套路,也可以開發應用;
缺點:
1。不是解釋性語言,做的WEB調試非常麻煩;現在做WEB開發的,用C#、JAVA較多;都是解釋性的語言;
2。因為是.DLL的二進制代碼,一般商業網站不給予運行的環境,因為網站伺服器會被你可能搞癱,安全性得不到保障;所以,你得自備網頁伺服器;
3。得不到技術支持,因為沒幾個人會這種開發;
4、C/C++做伺服器需要學習什麼樣的技術
伺服器所用到的知識:
TCP/UDP,最基本的
並發——你可以選擇使用select、poll,或者是多線程、多進程
如果你使用多線程,那麼就必須使用同步技術——信號量、互斥體、條件變數的一種或幾種,並且對於多線程技術,你還需要考慮使用進行線程分離與合並,
如果你使用了多進程,那麼同步技術就不是你需要考慮的了,你需要考慮的是進程相關的問題了,你是使用fork還是vfork,你該如何處理客戶端的請求,如何處理客戶端斷開連接後保證能夠處理完數據並且沒有僵屍進程產生,你還需要考慮高並發的問題
你發送接受數據的時候,採用何種方式,是阻塞的還是非阻塞的,還有連接超時、重傳等問題
你是選擇TCP還是UDP,如果選擇UDP你可得忙了,需要你自己去進行重傳驗證,模擬TCP的三次握手,保證數據不會丟失,保證數據的有序性
還有其他很多需要你考慮的,以上都是指在Linux下的C++,本人對windows C++不了解
推薦書目:UNIX高級環境編程,UNIX網路編程,卷一。C++只不過是你使用這些技術的方式,不管你使用C還是C++,你都可以使用從這兩本書中學習到很多有用的知識,但是不能保證你就可以寫出高質量的伺服器程序。
5、有沒有c語言開發伺服器的書 網上大都是c++的開發伺服器
也不是說C不適合做伺服器,到C做的都是精品,例如nginx,mysql等,如果是商業服務的話,還是用C++的效率更高
6、用C/C++開發大型高性能伺服器需要學習哪些方面的知識
第零步 C語言,推薦:《C語言程序設計:現代方法》
第一步 UNIX/Linux系統編程, 推薦《UNIX環境高級編程:第三版》《Linux/UNIX系統編程手冊》
第二步 TCP-IP詳解卷一 卷二 卷三
第四步 精研nginx源碼,再研究一下skynet,breeze之類
一步一步走下來,沒基礎的人大概需要3年,有基礎的人2年。
7、繼續上一個問題,那要用c或者c++來開發伺服器呢,用什麼工具及環境?
linux環境還是windows環境?
如果是linux環境的話,個人覺得vi/vim編輯器,再加上gcc環境和makfile足以具備開發的准備條件。
如果是windows的話,visual studio 2005(或者更高版本)開發應該不成問題。註:以上屬個人見解,希望能夠幫上一二,呵呵。
8、各位大哥,小弟想請問下C/C++伺服器端編程是做什麼的。需要學些什麼。麻煩詳細一點。謝謝
C/C++的伺服器端,比如我們經常玩的網游,那個伺服器端大部分都是C/C++編程的。還有本地連接,網上鄰居,ftp協議之類的,基本上windows的客戶端網路服務都有對應的伺服器。
當然要學習C/C++伺服器編程,涉及的方面就比較多了,重要的有網路連接,多線程,數據存儲等等的。
你可以參考一下騰訊在C/C++伺服器編程工程師的要求。
工作要求:
工作有激情, 認真負責,盡職盡責,溝通協作意識良好,能夠承擔工作壓力,具備良好的學習能力和分析解決問題能力;
全面的軟體知識結構(操作系統、數據結構、資料庫系統、網路安全),有兩年以上互聯網應用開發經驗,有無線互聯網後台開發經驗優先;
熟練使用C/C++語言,熟悉Linux下調試、開發環境,對多線程、緩存系統、高性能、高可用系統有經驗者優先;
熟悉TCP/IP協議,能熟練使用網路分析工具分析網路相關的故障,有一定的網路編程經驗;
熟悉資料庫的設計、使用與基本調優,熟練使用mysql資料庫進行業務開發;
熟悉Linux,具備Linux下的系統開發經驗;
具備大並發、分布式存儲、大容量系統開發運營經驗優先。
9、為什麼說C/C++不適合做web開發
用C語言開發WEB,我用C++BUILDER6做過,稱ISAPI,一般人可能做不起來,有點麻煩;
唯一是速度很快,別人看不到你的源碼,掌握了編程套路,也可以開發應用;
缺點:
1。不是解釋性語言,做的WEB調試非常麻煩;現在做WEB開發的,用C#、JAVA較多;都是解釋性的語言;
2。因為是.DLL的二進制代碼,一般商業網站不給予運行的環境,因為網站伺服器會被你可能搞癱,安全性得不到保障;所以,你得自備網頁伺服器;
3. 得不到技術支持,沒人邦你,因為沒幾個人會這種開發;
10、游戲伺服器開發為什麼很少使用c
C# 開發速度高 對於現代計算機來說,運行效率不是問題.. 最起碼比JAVA快得多得多
C++ 開發速度慢但是這是相對於熟練度來說的, 一個熟練使用C++的程序員開發一個東西也不慢 運行效率自然不用說..
很明顯,C#有個和JAVA一樣的特性.需要運行環境. 而C++則不需要..
這就絕定了. C#程序的傳播有局限性
綜合JAVA和C++的特點,我最終感覺C#是個非常矛盾的產物
論跨性, C#不及JAVA..(JAVA哪不能運行? C#呢,目前只能在WINDOWS)
論效率,C#不及C++.
所以覺得學習C#,實在不如去學習JAVA或者C++.