㈠ C/C++做伺服器需要學習什麼樣的技術
伺服器所用到的知識:
TCP/UDP,最基本的
並發——你可以選擇使用select、poll,或者是多線程、多進程
如果你使用多線程,那麼就必須使用同步技術——信號量、互斥體、條件變數的一種或幾種,並且對於多線程技術,你還需要考慮使用進行線程分離與合並,
如果你使用了多進程,那麼同步技術就不是你需要考慮的了,你需要考慮的是進程相關的問題了,你是使用fork還是vfork,你該如何處理客戶端的請求,如何處理客戶端斷開連接後保證能夠處理完數據並且沒有僵屍進程產生,你還需要考慮高並發的問題
你發送接受數據的時候,採用何種方式,是阻塞的還是非阻塞的,還有連接超時、重傳等問題
你是選擇TCP還是UDP,如果選擇UDP你可得忙了,需要你自己去進行重傳驗證,模擬TCP的三次握手,保證數據不會丟失,保證數據的有序性
還有其他很多需要你考慮的,以上都是指在linux下的C++,本人對windows C++不了解
推薦書目:UNIX高級環境編程,UNIX網路編程,卷一。C++只不過是你使用這些技術的方式,不管你使用C還是C++,你都可以使用從這兩本書中學習到很多有用的知識,但是不能保證你就可以寫出高質量的伺服器程序。
㈡ c語言有網路編程有沒有人使用c做游戲伺服器
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
㈢ 各位大哥,小弟想請問下C/C++伺服器端編程是做什麼的。需要學些什麼。麻煩詳細一點。謝謝
C/C++的伺服器端,比如我們經常玩的網游,那個伺服器端大部分都是C/C++編程的。還有本地連接,網上鄰居,ftp協議之類的,基本上windows的客戶端網路服務都有對應的伺服器。
當然要學習C/C++伺服器編程,涉及的方面就比較多了,重要的有網路連接,多線程,數據存儲等等的。
你可以參考一下騰訊在C/C++伺服器編程工程師的要求。
工作要求:
工作有激情, 認真負責,盡職盡責,溝通協作意識良好,能夠承擔工作壓力,具備良好的學習能力和分析解決問題能力;
全面的軟體知識結構(操作系統、數據結構、資料庫系統、網路安全),有兩年以上互聯網應用開發經驗,有無線互聯網後台開發經驗優先;
熟練使用C/C++語言,熟悉Linux下調試、開發環境,對多線程、緩存系統、高性能、高可用系統有經驗者優先;
熟悉TCP/IP協議,能熟練使用網路分析工具分析網路相關的故障,有一定的網路編程經驗;
熟悉資料庫的設計、使用與基本調優,熟練使用mysql資料庫進行業務開發;
熟悉Linux,具備Linux下的系統開發經驗;
具備大並發、分布式存儲、大容量系統開發運營經驗優先。
㈣ 在什麼情況下是用C語言寫linux伺服器
GUI 可以用 GTK 寫 , 是 C 的 , 用不著 C++,服務端 不會讓你寫 GUI, C++ 你可以 看看, 主要理解一下 OOP, C 也可以 實現OO, 多看看沒壞處, 有些技術不到家的公司會要你用C++, 看看就行了, 基本用不到c++高級特性, 底層還是靠C的功底...
㈤ R系列伺服器和C系列有什麼不同
尊敬的用戶您好:首先非常感謝您關注我們,我們將竭誠為您服務。
您所指的R系列是側重於擴展性和卓越性價比,適用於中小企業;
而C系列則側重吞吐量和超密集型高性能,適合於大企業,C系列伺服器,比R系列支持的內存要多,內部更密集,價格也相對高一些,目前用戶不能在網上下單,只能通過高級經銷商和項目大訂單采購。C系列等於是介於R系列機架式和M系列刀片式伺服器中間。
戴爾衷心感謝您的支持,祝您生活愉快!
㈥ c語言訪問伺服器
lz要先知道什麼是socket,它是TCP/IP協議的API。再上層是http udp之類傳輸報文協議。而什麼是伺服器,如你所說tomcat伺服器,他是一個http(s)伺服器。處理由客戶發送的HTTP報文。並返回報文給客戶。
簡單來說,http就是socket的一個封裝。所以c語言使用socket理所當然能訪問任何伺服器。至於使用什麼格式,你可以看看HTTP報文格式。
㈦ 網路攻擊 必須使用c&c伺服器嗎
遠程命令和控制伺服器,
目標機器可以接收來自伺服器的命令,
從而達到伺服器控制目標機器的目的。該方法常用於病毒木馬控制被感染的機器。
㈧ C/S(客戶機/伺服器)網路有什麼特點主要應用在什麼環境
戶機/伺服器系統 Client/server system 簡稱C/S系統。是一類按新的應用模式運行的分布式計算機系統。在這個應用模式中,用戶只關心完整地解決自己的應用問題,而不關心這些應用問題由系統中哪台或哪幾台計算機來完成。在C/S系統中,能為應用提供服務(如文件服務,列印服務,拷貝服務,圖象服務,通信管理服務等)的計算機或處理器,當其被請求服務時就成為伺服器。一台計算機可能提供多種服務,一個服務也可能要由多台計算機組合完成。與伺服器相對,提出服務請求的計算機或處理器在當時就是客戶機。從客戶應用角度看,這個應用的一部分工作在客戶機上完成,其他部分的工作則在(一個或多個)伺服器上完成。
C/S系統最重要的特徵是:它不是一個主從環境,而是一個平等的環境,即C/S系統中各計算機在不同的場合既可能是客戶機,也可能是伺服器,進入90年代,C/S系統迅速流行,在於它有很多優點:用戶使用簡單,直觀;編程,調試和維護費用低;系統內部負荷可以做到比較均衡,資源利用率較高;允許在一個客戶機上運行不同計算機平台上的多中應用;系統易於擴展,可用性較好,對用戶需求變的適應性好。
從技術角度看,C/S系統本質上是將70年代就提出的虛擬機器的概念使用於分布式計算機系統,其本質是實現功能的合理分布和處理的「無縫連接」。C/S系統的實用依賴於若干90年代才成熟的技術:首先由於以一系列標准為基礎的開放式系統原則被普遍接受,為各種客戶機,伺服器之間提供中間件(Middleware)成為可能;第二,CASE工具,視窗技術,面向對象技術,分布式資料庫技術等的成熟,為C/S系統環境下的編程,調試,運行提供了良好的條件;性能價格比迅速提高的計算機為開銷甚大的分布式操作系統提供了可接受的運行條件,使得分布式邏輯處理,分布式伺服器等應用模式得以實現。
C/S系統已廣泛用於中小型工商企業,機關等部門,由於通訊技術的進展,C/S系統在地域上可有較大的跨度。
㈨ linux服務端開發是用C還是C++
一般的伺服器,大都屬於應用領域。在Linux/UNIX的應用領域搞開發,還是C++多一些,畢竟開發效率高、維護成本低。但是靠近底層的部分,如內核、驅動等方面的開發,還是C語言的天下。
㈩ 怎麼樣用c語言 伺服器
去看一下《Advanced Linux Programming》這本書吧,第11章講的就是怎麼用C語言實現一Http伺服器。
這里有下載地址(英文的):
英文看起來不順的話可以上網找找有沒有中文版的這本書,應該叫Linux高級編程吧~~~