Linux C++高性能網絡編程
摘要: 軒轅高端C++培訓:專注 Linux下C/C++、ACE、Boost、高性能服務器端應用 開發技術培訓http://xuanyuan-soft.cn/ 閱讀全文
posted @ 2014-03-20 16:09 athxy 閱讀(1196) | 評論 (0) | 編輯 收藏
Linux C++訓練營
2014年3月20日 #
posted @ 2014-03-20 16:09 athxy 閱讀(1196) | 評論 (0) | 編輯 收藏
2013年9月3日 #
posted @ 2013-09-03 15:03 athxy 閱讀(399) | 評論 (0) | 編輯 收藏
2013年1月27日 #
現場班:全日制脫產學習、歷時4個月,每月開班。
遠程班:遠程視頻學習,學習時間自定,隨時開課。
Linux C++全科班課程由以下模塊組成:
由于本系列課程基于Linux(或UNIX),熟悉Linux操作系統是必要的前提。 該模塊的課程包含以下方面的內容:
常用Unix/Linux命令
熟悉文件管理、文本處理、進程管理、網絡、系統管理等各個方面大約100個常用的命令。
深入了解bash
了解Linux默認shell: bash 的語法、命令執行、I/O重定向、任務控制等。
正則表達式基礎
由于UNIX/Linux中很多強大的文本處理命令如:grep、awk、sed,還有vi編輯器等工具配合正則表達式將產生強大的威力,所以熟悉正則表達式語法是十分必要的。
find、grep、sed、awk
四個強大的UNIX工具,特別是sed、awk在文本處理方面的能力非常強大,在Linux下工作應該掌握這幾個命令。
不同系統平臺下的開發工具、開發環境各有不同。該模塊課程關注的是Linux C++/C開發所必需的一系列工具:
vi(vim)文本編輯器
一個UNIX世界標準的文本編輯器,簡約而強大,不論作為開發人員還是系統管理員,熟練使用vi是一項基本的、且不可或缺的技能。
gcc/g++ C/C++編譯器
通過具體的示例講解使用gcc/g++編譯單個、多個文件、共享庫、靜態庫等。
gdb 調試器
通過具體的示例來熟悉通過gdb來調試C/C++應用程序、修正應用程序運行期的錯誤。
make和makefile
學習編寫makefile,使用make來構建一個完整的項目。
CVS - 版本控制
運用CVS來進行代碼的版本控制。
Eclipse CDT
一個非常強大的C/C++ IDE,強大的文本編輯器、與GCC工具鏈的無縫結合、方便的gdb前端、集成CVS/Subversion等版本控制等,提供眾多的便利,大大減輕開發者的負擔。
深入講解C++編程語言的各個方面,即完整的C++語法講解:
語言基礎
詳細介紹變量、表達式、語句、指針、數組、流程控制、函數、文件組織等。
抽象機制 - 面向對象編程
深入講解C++的抽象機制,封裝(類)、繼承、多態;操作符重載、函數對象、異常處理等。
模板 - 泛型編程
詳細介紹C++的模板機制,類模板、函數模板、模板特化等方面的內容。
完整地講解STL各大組件:容器、算法、函數對象、容器適配器、迭代器、迭代器適配器等;另外還包括string、I/O stream;為了更好地了解STL容器的特性、排序算法,額外安排:數據結構簡介和常用排序算法簡介2個部分的內容。
常用數據結構簡介
介紹動態數組、linked-list、binary search tree、rb-tree、hash table、stack、queue、heap等常用的數據結構。
STL容器詳細介紹
vector、list、deque、stack、queue、priority_queue、map、set等容器的特性和用法。
常見排序算法介紹
簡要介紹各種常見排序算法的原理,及其實現。
STL算法和預定義函數對象
標準庫提供了多達60多個算法函數,涉及排序、搜索、排列組合等多個方面,其中多數算法會使用如greater、less、binder2nd等函數對象,該單元的課程詳細介紹了上述算法的使用和相關函數對象的具體作用。
迭代器
STL容器和算法高度解耦,而算法之所以能方便的作用于STL容器,維系二者的就是迭代器。
在這個單元的課程中講介紹C++迭代器的類別、各類迭代器適配器的用法。
string - 字符串
相對于C風格的字符串處理,C++提供了更安全和方便的字符串類型 string,給class提供類眾多的方法確保針對字符串處理的安全、便捷性。該單元的課程講完整地介紹string的使用。
I/O stream
C++標準庫提供的一個強大的I/O流框架。本單元詳細介紹標準輸入/輸出、文件輸入/輸出、字符串輸入/輸出流的運用,利用操控符來控制輸入/輸出的格式。
數值
介紹C++數值運算的算法,如valarray、4組數值算法函數、隨機數等方面的內容。
Boost是由C++標準委員會成員發起、眾多C++業界高人參與設計并實現的一個涉及面廣、質量高且業已廣泛使用的C++標準后備庫,其中 TR1已經被納入C++0x標準庫。不論從風格和內容組織上講,都可以認為Boost項目是C++標準庫的延伸。截止到boost 1.43版本,boost項目擁有大約100個用途廣泛的實用庫。這部分課程將介紹服務器端開發所需要的幾個組件:
容器與數據結構
介紹boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等組件。
字符串算法和文字處理
介紹boost.lexical_cast, boost.format, boost.string_algo等組件。
正則表達式
正則表達式語法(perl正則表達式語法)的講解,boost.regex庫的使用。
智能指針
詳細介紹shared_ptr、scoped_ptr、weak_ptr等智能指針的使用。
函數對象相關
詳細介紹boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等組件。
序列化
通過實例熟悉boost.serialization庫的用法。
日期與時間
boost.date_time庫的詳細介紹。
多線程
作為服務器端開發必不可少的內容之一:多線程支持,boost提供了一個跨平臺的線程庫:boost.thread。
本單元的課程詳細介紹boost.thread。
網絡編程
boost.asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。
本單元的課程通過一系列的示例來展示:通過asio來構建TCP同步/異步服務器和客戶端、UDP同步/異步服務器和客戶端應用,從而熟悉asio的接口和編程套路。
ACE是一個被廣泛使用、設計優雅、高性能的C++通信框架(不僅僅是通信框架),其設計及實現被眾多開源框架所借鑒。是構建穩定、高性能、高吞吐量、跨平臺的服務器端程序的優秀框架。本模塊的課程包含以下幾個方面:
ACE基礎網絡I/O相關對象
詳細介紹ACE_SOCK、ACE_SOCK_Acceptor、ACE_SOCK_Connector、ACE_INET_Addr等class的使用。
Reactor框架
ACE Reactor框架簡化事件驅動程序的開發,而事件驅動是很多網絡化應用的基本特征,這些應用常見的事件源包括I/O事件、Posix信號或 Windows句柄激發以及定時器到期等。
本單元介紹ACE_Event_Handler、Timer、ACE_Reactor等類的使用,并使用該框架構建一個簡易的多人聊天室應用。
Task框架
ACE Task框架提供了強大而可擴展的面向對象并發能力,如在基于對象的上下文(context)中派生線程,以及在執行不同線程中的對象之間傳遞消息和對消息進行排隊。
Acceptor-Connector框架
ACE Acceptor-Connector框架實現了Acceptor-Connector模式,這種模式通過解除:1,網絡化應用中相互協作的對等服務的連 接和初始化所需的活動、2,以及它們一旦連接和初始化后所執行的處理的耦合,增強了軟件復用和可擴展性。
Proactor框架
Proactor框架引入異步I/O機制,既保留了Reactor框架的事件多路分離,避免多線程的開銷,同時還緩和了反應式的同步I/O的瓶頸效應。
數據庫作為服務器端應用數據持久化的最重要的部件,在服務器端應用開發中占有非常重要的地位。本模塊主要針對Oracle 10g和MySQL 5.1兩種關系型數據庫管理系統。本模塊包含以下內容:
SQL語言
詳細介紹DML、DDL語句的語法和使用。
Oracle PL/SQL
全面介紹Oracle PL/SQL語法,以及使用PL/SQL編寫存儲過程、函數、觸發器。
MySQL存儲過程
編寫MySQL存儲過程、函數、觸發器。
C++ OTL
OTL:Oracle、ODBC and DB2-CLI Template Library。通過OTL,可以方便、高效的與各類主流的關系型數據庫如DB2、Oracle、Infomix、Sybase、MySQL等通信。
項目實戰可選以下項目之一:
項目1:X-Messenger Servers
IM(即時通信)服務器群,類似于MSN、QQ等IM的服務器。可以基于Boost.asio或ACE實現。
項目2:X-Messenger Client
IM(即時通信)客戶端軟件,類似于MSN、QQ等IM的工具。實現Contacts管理、P2P文件傳輸、P2P一對一文本聊天、群聊等現代IM客戶端功能,可以基于Boost.asio或ACE實現。
項目3:X-Crawler
一個網絡爬蟲,即搜索引擎的前端,負責收集網絡上的數據(網頁內容、解析URL)供搜索引擎使用。
其他項目,可由學員自行定義。
可獲取的課程資源見:教學資源。
posted @ 2013-01-27 14:41 athxy 閱讀(678) | 評論 (0) | 編輯 收藏
2012年11月6日 #
昆山軒轅高端IT培訓本次課程深入講解Linux下的socket編程,并以此為基礎,著重討論如何提高網絡服務端應用的性能,通過本次課程的學習,學員將收獲以下方面的成果:
參加本次課程的學員須具備以下能力:
本次課程由以下幾個部分構成:
注:XMMEP為X-Messenger Message Exchanging Protocol
可獲取的課程資源見:教學資源。
posted @ 2012-11-06 16:36 athxy 閱讀(791) | 評論 (0) | 編輯 收藏
2012年8月29日 #
posted @ 2012-08-29 15:00 athxy 閱讀(2777) | 評論 (1) | 編輯 收藏
2012年8月24日 #
為方便廣大Linux軟件開發愛好者,軒轅高端IT培訓中心于2009年10月設立了Linux開放實驗室,軒轅Linux開放實驗室提供了完整的 Linux軟件開發環境,包括:Ubuntu Linux 10.04 Server、C/C++(GCC、GDB)、make、Java、Python、Perl、C++ Boost、C++ ACE、C++ OTL、Oracle、DB2、MySQL、Tomcat...,囊括了網絡、多線程、數據庫等服務器端軟件開發的各個方面。
posted @ 2012-08-24 14:21 athxy 閱讀(482) | 評論 (0) | 編輯 收藏
2012年1月27日 #
本次課程圍繞高性能網絡編程這一主題,從眾多的Boost類庫中挑選出Boost.Asio、Boost.Thread以及其它配套的實用庫,作為主要學習的內容,通過本次課程的學習,學員將具備以下能力:
本次課程由以下幾個部分構成:
Boost.Asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、可移植性高、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。
注:XMMEP為X-Messenger Message Exchanging Protocol。
可獲取的課程資源見:教學資源。
posted @ 2012-01-27 09:28 athxy 閱讀(792) | 評論 (1) | 編輯 收藏
2010年11月1日 #
昆山軒轅高端IT培訓,C++ Boost現場項目班課程,通過對Boost幾個實用組件的學習,掌握高吞吐量、低延遲的服務器端應用開發的有效知識,且通過最終項目的歷練,學員將對高性能服務器端應用開發有一個清晰的認識,并能熟練使用Boost相關的類庫來開發服務器端應用。
該課程的項目實戰部分時間,主要講解服務器端應用的架構、設計,以及項目實現技術的運用。
上課方式
現場班:全日制脫產學習,歷時1個月,每月開班。
遠程班:遠程視頻學習,學習時間自定,隨時開課。
課程大綱
C++ Boost強化班課程由以下模塊組成:
Boost是由C++標準委員會成員發起、眾多C++業界高人參與設計并實現的一個涉及面廣、質量高且業已廣泛使用的C++標準后備庫,其中 TR1已經被納入C++0x標準庫。不論從風格和內容組織上講,都可以認為Boost項目是C++標準庫的延伸。截止到boost 1.43版本,boost項目擁有大約100個用途廣泛的實用庫。這部分課程將介紹服務器端開發所需要的幾個組件:
容器與數據結構
介紹boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等組件。
字符串算法和文字處理
介紹boost.lexical_cast, boost.format, boost.string_algo等組件。
正則表達式
正則表達式語法(perl正則表達式語法)的講解,boost.regex庫的使用。
智能指針
詳細介紹shared_ptr、scoped_ptr、weak_ptr等智能指針的使用。
函數對象相關
詳細介紹boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等組件。
Boost.Signals2 - 實現回調機制
Boost Signal2:線程安全的Signal-Slot機制 (Publishers → Signals/Subscribers → Slots),即Observer模式的實現;
序列化
通過實例熟悉boost.serialization庫的用法。
日期與時間
boost.date_time庫的詳細介紹。
多線程
作為服務器端開發必不可少的內容之一:多線程支持,boost提供了一個跨平臺的線程庫:boost.thread。
本單元的課程詳細介紹boost.thread。
網絡編程
boost.asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。
本單元的課程通過一系列的示例來展示:通過asio來構建TCP同步/異步服務器和客戶端、UDP同步/異步服務器和客戶端應用,從而熟悉asio的接口和編程套路。
課程結束后,學員需基于C++、Boost實現以下項目:
項目1:X-Messenger Servers
IM(即時通信)服務器群,類似于MSN、QQ等IM的服務器。可以基于Boost.asio或ACE實現。
可獲取的課程資源見:教學資源。
posted @ 2010-11-01 12:04 athxy 閱讀(662) | 評論 (0) | 編輯 收藏
2010年7月22日 #
昆山軒轅高端IT培訓,C++ ACE現場項目班課程,通過對ACE幾個主要的框架的學習,掌握高吞吐量、低延遲的服務器端應用開發的有效知識,且通過最終項目的歷練,學員將對高性能服務器端應用開發有一個清晰的認識,并能熟練使用ACE相關的框架來開發服務器端應用。
該課程的項目實戰部分時間,主要講解服務器端應用的架構、設計,以及項目實現技術的運用。
現場班:全日制脫產學習,歷時1個月。學費¥4,000元。
遠程班:遠程視頻學習,學費3000元
C++ ACE現場項目班的課程由以下部分組成:
ACE是一個被廣泛使用、設計優雅、高性能的C++通信框架(不僅僅是通信框架),其設計及實現被眾多開源框架所借鑒。是構建穩定、高性能、高吞吐量、跨平臺的服務器端程序的優秀框架。本模塊的課程包含以下幾個方面:
課程結束后,學員需基于C++、ACE實現以下項目:
可獲取的課程資源見:教學資源。
http://www.xuanyuan-soft.cn
QQ:570508473
posted @ 2010-07-22 17:04 athxy 閱讀(896) | 評論 (0) | 編輯 收藏