• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Linux/UNIX、C++、Boost、ACE、Shell

            Linux C++訓練營

            2014年3月20日 #

            Linux C++高性能網絡編程

                 摘要: 軒轅高端C++培訓:專注 Linux下C/C++、ACE、Boost、高性能服務器端應用 開發技術培訓
            http://xuanyuan-soft.cn/  閱讀全文

            posted @ 2014-03-20 16:09 athxy 閱讀(1188) | 評論 (0)編輯 收藏

            2013年9月3日 #

            Java02:使用Jdbc連接Oracle數據庫

            Java02:使用Jdbc連接Oracle數據庫

            一、編寫代碼

            import java.sql.Connection;
            import java.sql.DriverManager;
            import java.sql.ResultSet;
            import java.sql.SQLException;
            import java.sql.Statement;

            public class JdbcTest02 {

                public static void main(String[] args) {
                    Connection con = null;
                    Statement st = null;
                    ResultSet rs = null;
                    try {
                        String driver = "oracle.jdbc.driver.OracleDriver";
                        String url = "jdbc:oracle:thin:@localhost:1521:xe";
                        String user = "xuanyuan";
                        String password = "xuanyuan";

                        Class.forName(driver);
                        con = DriverManager.getConnection(url, user, password);

                        st = con.createStatement();
                        rs = st.executeQuery("select sysdate from dual");

                        while (rs.next())
                            System.out.println(rs.getString(1));

                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    } finally {
                        if (rs != null) {
                            try {
                                rs.close();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }

                        if (st != null) {
                            try {
                                st.close();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }

                        if (con != null) {
                            try {
                                con.close();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }

            二、編譯代碼

            $ javac JdbcTest02.java

            三、運行程序 JdbcTest02

            $ java -cp /opt/javalib/orajdbc/ojdbc14.jar:. JdbcTest02
            2009-10-31 14:34:50.0

            說明:Oracle和MySQL的jdbc 驅動都在 /opt/javalib/目錄下
            軒轅高端LinuxC/C++ACEBoost高性能服務器端應用 開發技術培訓

            posted @ 2013-09-03 15:03 athxy 閱讀(393) | 評論 (0)編輯 收藏

            2013年1月27日 #

            Linux下C/C++、ACE、Boost、高性能服務器端應用 開發技術

            Linux C++培訓(現場及遠程班)

            中國唯一一家專注 LinuxC/C++ACEBoost高性能服務器端應用 開發技術培訓的機構。

            上課方式

            現場班:全日制脫產學習、歷時4個月,每月開班。

            遠程班:遠程視頻學習,學習時間自定,隨時開課。

            課程模塊

            Linux C++全科班課程由以下模塊組成:

            Module01 - Linux系統基礎

            由于本系列課程基于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下工作應該掌握這幾個命令。

            Module02 - 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等版本控制等,提供眾多的便利,大大減輕開發者的負擔。

            Module03 - C++編程語言

            深入講解C++編程語言的各個方面,即完整的C++語法講解:

            • 語言基礎
              詳細介紹變量、表達式、語句、指針、數組、流程控制、函數、文件組織等。

            • 抽象機制 - 面向對象編程
              深入講解C++的抽象機制,封裝(類)、繼承、多態;操作符重載、函數對象、異常處理等。

            • 模板 - 泛型編程
              詳細介紹C++的模板機制,類模板、函數模板、模板特化等方面的內容。

            Module04 - 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組數值算法函數、隨機數等方面的內容。

            Module05 - 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.serialization庫的用法。

            • 日期與時間
              boost.date_time庫的詳細介紹。

            • 多線程
              作為服務器端開發必不可少的內容之一:多線程支持,boost提供了一個跨平臺的線程庫:boost.thread。
              本單元的課程詳細介紹boost.thread。

            • 網絡編程
              boost.asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。
              本單元的課程通過一系列的示例來展示:通過asio來構建TCP同步/異步服務器和客戶端、UDP同步/異步服務器和客戶端應用,從而熟悉asio的接口和編程套路。

            Module06 - C++ ACE

            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的瓶頸效應。

            Module07 - 數據庫開發

            數據庫作為服務器端應用數據持久化的最重要的部件,在服務器端應用開發中占有非常重要的地位。本模塊主要針對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等通信。

            Module08 - 項目實戰

            項目實戰可選以下項目之一:

            • 項目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)供搜索引擎使用。

            • 其他項目,可由學員自行定義。

            課程資源

            可獲取的課程資源見:教學資源

            http://xuanyuan-soft.cn

            posted @ 2013-01-27 14:41 athxy 閱讀(670) | 評論 (0)編輯 收藏

            2012年11月6日 #

            Linux高性能網絡編程

            Linux高性能網絡編程

            一、課程目標

            昆山軒轅高端IT培訓本次課程深入講解Linux下的socket編程,并以此為基礎,著重討論如何提高網絡服務端應用的性能,通過本次課程的學習,學員將收獲以下方面的成果:

            • 熟練使用socket系列函數進行網絡編程;
            • 深刻理解服務端應用的性能要求;
            • 利用Linux提供的各種機制,有效地解決服務端應用的性能瓶頸。

            二、參訓要求

            參加本次課程的學員須具備以下能力:

            • 了解TCP/IP協議,有網絡編程概念。
            • 本次課程使用 C語言 教學,所以學員需擁有較好的C語言基礎;
            • 能熟練使用常用的Linux命令;
            • 能熟練使用gcc、gdb、熟練撰寫makefile;
            • 最好熟練使用vi、emacs等文本編輯器其中的一種。

            三、課程實踐環境

            • 操作系統:GNU/Linux 2.6+(建議使用Redhat AS 5+或Ubuntu、Fedora)
            • 編譯器:GCC v4.1+、GDB v7.0+
            • 可選IDE:Eclipse CDT

            四、課程大綱

            本次課程由以下幾個部分構成:

            1、POSIX Thread - 多線程

            • 線程管理
              • 線程創建:pthread_create()
              • 線程終止:pthread_exit()
              • 線程連接和分離:join and detach
            • 線程同步機制
              • 互斥體:mutex
              • 讀寫鎖:read-write lock
              • 條件變量:condition variable
            • 線程屬性控制
            • mutex屬性控制

            2、Socket 簡介

            • Socket地址數據結構:struct sockaddr,struct sockaddr_in
            • 字節序以及字節序操作:ntohl(), ntohs(), htonl(), htons()
            • Internet地址操作:inet_aton(), inet_addr(), and inet_ntoa(), inet_pton(), inet_ntop()

            3、TCP Socket

            • socket():創建socket
            • bind():綁定地址
            • listen():開始偵聽
            • accept():接受來自客戶端的連接
            • connect():連接到服務器
            • getsockname()和getpeername():獲取本地和對端地址
            • I/O 操作:read(), write()
            • 更高效的I/O 操作:readv(), writev()
            • TCP Server編程步驟
            • TCP Server v1:迭代式Echo Server
            • TCP Server v2:多進程并發式Echo Server,使用fork()和exec*()
            • TCP Server v3:多線程并發式Echo Server,使用pthread
            • TCP Client編程步驟
            • TCP Client:Echo Client

            4、UDP Socket

            • recvfrom()和sendto():收發UDP數據報
            • UDP Echo Server
            • UDP Echo Client
            • 組播(Multicast)和廣播(Broadcast)

            5、Socket Options和 IP Options

            • 常用的Socket Options
            • 常用的IP Options
            • Socket選項和IP選項對網絡應用的影響

            6、I/O多路復用:構建反應式(Reactive)網絡應用

            • UNIX I/O多路復用機制概要
            • 為什么I/O 多路復用對于網絡應用很重要
            • I/O 多路復用與多線程(反應式模型和并發模型)
            • select / poll
            • 在TCP Server和UDP Server中使用select和poll
            • Linux特有I/O 多路復用機制:Event poll (epoll)
            • 在TCP Server和UDP Server中使用epoll

            7、異步I/O:構建前攝式(Proactive)網絡應用

            • 相關概念:同步I/O和異步I/O、Proactor模式
            • 異步I/O 是如何提高I/O 性能的
            • 異步I/O系列操作
            • 使用異步I/O的機制構建TCP Server

            8、高性能網絡編程討論

            • 考究高性能網絡編程中應該遵循的原則,討論并發、同步、事件多路分離等機制的適用場合
            • 網絡應用的瓶頸何在
            • 事件多路分離 vs 一連接一線程 (Event demultiplexing vs One thread per connection)
            • 同步I/O vs 異步I/O (Synchronous I/O vs Asynchronous I/O)
            • 如何適當地使用多線程
            • 什么時候需要多個 事件多路分離線程

            9、應用層協議定義與實現

            • 為什么要自定義應用層協議
            • 定義應用層協議 (以XMMEP協議為例)
            • 用C++實現自定義的協議 (以XMMEP協議為例)

            注:XMMEP為X-Messenger Message Exchanging Protocol

            六、課程資源

                  可獲取的課程資源見:教學資源

            http://www.xuanyuan-soft.cn
            Q          Q:570508473
            電        話:0512-55253348
            郵        箱:athzhang@gmail.com
            昆山軒轅軟件技術有限公司
            昆山葦城南路1666號清華科技園創新大廈230室

            posted @ 2012-11-06 16:36 athxy 閱讀(782) | 評論 (0)編輯 收藏

            2012年8月29日 #

            ACE高性能網絡編程

                 摘要: 昆山軒轅高端IT培訓---ACE高性能網絡編程一、課程目標本次課程針對使用ACE工具包進行高性能網絡應用開發,通過本次課程的學習,學員將具備以下能力:了解ACE的架構和組件;理解現代操作系統線程模型、并發以及同步機制;熟練使用ACE線程管理和同步機制接口開發并發應用;熟練使用ACE基本的IPC SAP接口,如SOCK_Stream、SOCK_Dgram等;深刻理解現代操作系統中事件多路分離和分派機...  閱讀全文

            posted @ 2012-08-29 15:00 athxy 閱讀(2769) | 評論 (1)編輯 收藏

            2012年8月24日 #

            軒轅Linux C++開放實驗室

            簡介

            為方便廣大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...,囊括了網絡、多線程、數據庫等服務器端軟件開發的各個方面。

            Linux開放實驗室典型用途

            • 熟悉Linux操作系統,如系統命令、Shell編程、vi等編輯器;
            • C++語言的學習與軟件開發,包括基于Boost和ACE的軟件開發;
            • C++數據庫開發,OTL;
            • Java語言的學習與軟件開發;
            • Java數據庫開發,jdbc;
            • Python、Perl等腳本語言的學習與軟件開發;
            • 更多您能發掘到的用途...

            開發環境

            • 操作系統:Ubuntu Linux 10.04 Server;
            • 文本編輯器:vim、emacs、nano
            • C/C++:GCC工具鏈(g++/gcc 4.4.3、gdb 7.1)、GNU make 3.8.1、GNU autotools 2.59等;
            • C++第三方庫:Boost 1.43、ACE 5.6.3、OTL 4.0;
            • Java:Java se 6(Openjdk6);
            • Jdbc:Oracle ojdbc14、MySQL mysql-connector-java-5.0.8;
            • 數據庫:Oracle 10g XE、DB2 Express-C 9.7、MySQL 5.1.41;
            • Python 2.6.5、Perl 5.10.1;
            • 版本控制:CVS 1.12.13
            • ...

            實驗室面向的人群

            • 所有能通過互聯網登錄到實驗室服務器的朋友。
            http://www.xuanyuan-soft.cn/zh/lab/registration

            posted @ 2012-08-24 14:21 athxy 閱讀(477) | 評論 (0)編輯 收藏

            2012年1月27日 #

            Boost高性能網絡編程

            一、課程目標

            本次課程圍繞高性能網絡編程這一主題,從眾多的Boost類庫中挑選出Boost.Asio、Boost.Thread以及其它配套的實用庫,作為主要學習的內容,通過本次課程的學習,學員將具備以下能力:

            • 掌握智能指針、高階函數對象、對象序列化/反序列化等類庫的使用;
            • 理解現代操作系統線程模型、并發以及同步機制;
            • 熟練使用Boost.Thread線程管理和同步機制接口開發并發應用;
            • 深刻理解現代操作系統中事件多路分離和分派機制如select、epoll等、了解異步I/O以及完成事件的分派;
            • 熟練使用Boost.Asio構建穩定、高效和靈活的網絡應用。

            四、課程大綱

            本次課程由以下幾個部分構成:

            1、Boost.Serialization - 序列化

            • 基本類型和自定義類型的序列化;
            • 數組、指針和智能指針的序列化;
            • STL容器、std::string的序列化;
            • 識別類的版本;
            • XML格式的archive;
            • 二進制格式的archive。

            2、Boost.Smart_Ptr - 智能指針

            • 回顧std::auto_ptr<>;
            • 無Copyable 語義的scoped_ptr<>;
            • shared_ptr<>;
            • weak_ptr<>;
            • enable_shared_from_this<>;

            3、Boost.Bind and Boost.Function- 函數對象相關

            • 什么是函數對象?
            • 回顧std::bind1st()、std::bind2nd()、std::mem_fun()、std::ptr_fun()等適配器;
            • Boost bind();
            • Boost Function;
            • Boost ref()。

            4、Boost.Signals2 - 實現回調機制

            • Boost Signal2:線程安全的Signal-Slot機制 (Publishers → Signals/Subscribers → Slots),即Observer模式的實現;
            • 簡單的回調;
            • 多個Slot回調;
            • 管理Connections;
            • 一些示例。

            5、一些實用類庫

            • Boost.Property_Tree;
            • Boost.Format;

            6、Boost.Thread - 多線程

            • 線程與進程之區別;
            • 用戶線程與內核線程;
            • 不同操作系統中的線程模型;
            • 線程管理:線程創建、中斷、分離/連接等;
            • 同步機制:Mutex、Lock、Condition_variable、TSS等。

            7、Boost.Asio - 網絡編程

            Boost.Asio庫,通過對各類操作系統原生的socket API以及事件多路分離、異步I/O API的封裝,構成了一個性能優秀、可移植性高、便于編程的網絡編程框架,使復雜的網絡編程任務變得簡單、安全、并且高效。

            • Asio相關概念:同步I/O和異步I/O、Proactor模式、Asio和線程;
            • Linux 下 I/O事件多路分離機制:select、epoll;
            • TCP同步I/O Server/Client編程示例;
            • UDP同步I/O Server/Client編程示例;
            • TCP異步I/O Server/Client編程示例;
            • UDP異步I/O Server/Client編程示例;
            • Timer - 定時器;
            • Asio核心接口介紹。

            8、高性能網絡編程討論

            • 考究高性能網絡編程中應該遵循的原則,討論并發、同步、事件多路分離等機制的適用場合。
            • 網絡應用的瓶頸在何處?
            • 事件多路分離 vs 一連接一線程 (Event demultiplexing vs One thread per connection);
            • 同步I/O vs 異步I/O (Synchronous I/O vs Asynchronous I/O);
            • 如何適當地使用多線程?
            • 什么時候需要多個 事件多路分離線程?

            9、應用層協議定義與實現

            • 為什么要自定義應用層協議?
            • 定義應用層協議 (以XMMEP協議為例);
            • 用C++實現自定義的協議 (以XMMEP協議為例)。

            注:XMMEP為X-Messenger Message Exchanging Protocol。

            六、課程資源

                  可獲取的課程資源見:教學資源

            posted @ 2012-01-27 09:28 athxy 閱讀(783) | 評論 (1)編輯 收藏

            2010年11月1日 #

            C++ Boost

            Boost培訓(項目班)

            昆山軒轅高端IT培訓,C++ Boost現場項目班課程,通過對Boost幾個實用組件的學習,掌握高吞吐量、低延遲的服務器端應用開發的有效知識,且通過最終項目的歷練,學員將對高性能服務器端應用開發有一個清晰的認識,并能熟練使用Boost相關的類庫來開發服務器端應用。

            該課程的項目實戰部分時間,主要講解服務器端應用的架構、設計,以及項目實現技術的運用。

            上課方式

            現場班:全日制脫產學習,歷時1個月,每月開班。

            遠程班:遠程視頻學習,學習時間自定,隨時開課。

            課程大綱

            C++ 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的接口和編程套路。

            2 - 項目實戰

                   課程結束后,學員需基于C++、Boost實現以下項目:

            • 項目1X-Messenger Servers
              IM(即時通信)服務器群,類似于MSN、QQ等IM的服務器。可以基于Boost.asio或ACE實現。

            課程資源

                   可獲取的課程資源見:教學資源

            http://xuanyuan-soft.cn

            posted @ 2010-11-01 12:04 athxy 閱讀(657) | 評論 (0)編輯 收藏

            2010年7月22日 #

            C++ ACE項目班

            C++ ACE 項目班

                   昆山軒轅高端IT培訓,C++ ACE現場項目班課程,通過對ACE幾個主要的框架的學習,掌握高吞吐量、低延遲的服務器端應用開發的有效知識,且通過最終項目的歷練,學員將對高性能服務器端應用開發有一個清晰的認識,并能熟練使用ACE相關的框架來開發服務器端應用。

                   該課程的項目實戰部分時間,主要講解服務器端應用的架構、設計,以及項目實現技術的運用。

            上課方式

                   現場班:全日制脫產學習,歷時1個月。學費¥4,000元。

                   遠程班:遠程視頻學習,學費3000元

            課程大綱

                   C++ ACE現場項目班的課程由以下部分組成:

            1 - C++ ACE

                   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等類的使用,并使用該框架構建一個簡易的多人聊天室應用。
            • Service Configuration框架
              Service Configuration框架允許應用在運行期重新配置其服務(包括靜態服務和動態服務),而不必修改、重新編譯或重新連接程序自身,或是關閉和重啟應用等。
            • Task框架
              ACE Task框架提供了強大而可擴展的面向對象并發能力,如在基于對象的上下文(context)中派生線程,以及在執行不同線程中的對象之間傳遞消息和對消息進行排隊。
            • Acceptor-Connector框架
              ACE Acceptor-Connector框架實現了Acceptor-Connector模式,這種模式通過解除:1,網絡化應用中相互協作的對等服務的連接和初始化所需的活動、2,以及它們一旦連接和初始化后所執行的處理的耦合,增強了軟件復用和可擴展性。
            • Proactor框架
              Proactor框架引入異步I/O機制,既保留了Reactor框架的事件多路分離,避免多線程的開銷,同時還緩和了反應式的同步I/O的瓶頸效應。

            2 - 項目實戰

                   課程結束后,學員需基于C++、ACE實現以下項目:

            • 項目1:X-Messenger Servers
              IM(即時通信)服務器群,類似于MSN、QQ等IM的服務器。基于ACE實現。

            課程資源

                   可獲取的課程資源見:教學資源


            http://www.xuanyuan-soft.cn
            QQ:570508473

            posted @ 2010-07-22 17:04 athxy 閱讀(891) | 評論 (0)編輯 收藏

            僅列出標題  
            久久久久亚洲av无码专区| 久久久久久国产精品免费免费| 精品久久久久久久久久中文字幕| 国产Av激情久久无码天堂| 国产精品久久久久9999高清| 久久精品国产亚洲5555| 久久久久亚洲AV成人网人人网站 | 久久丫忘忧草产品| 久久久久久久精品成人热色戒| 一本色道久久99一综合| 久久精品视频网| 2021久久精品免费观看| 久久国产成人精品麻豆| 久久中文字幕人妻熟av女| 国产精品久久久99| 亚洲中文字幕无码久久2020| 久久97久久97精品免视看| 久久人人添人人爽添人人片牛牛| 91精品国产综合久久四虎久久无码一级| 国产精品亚洲美女久久久| 国产A三级久久精品| 久久精品免费大片国产大片| 久久青青草原精品国产| 麻豆久久久9性大片| 亚洲伊人久久大香线蕉苏妲己| 老色鬼久久亚洲AV综合| 久久乐国产综合亚洲精品| 99热精品久久只有精品| 久久99精品国产自在现线小黄鸭 | 国产亚洲精久久久久久无码| 色婷婷噜噜久久国产精品12p | 色综合久久久久综合99| 嫩草影院久久国产精品| 久久国产精品无码一区二区三区| 久久精品视频一| 思思久久99热只有频精品66| 久久夜色撩人精品国产小说| 久久精品国产99国产精品| 精品久久久久中文字幕一区| 91精品国产91久久久久久| 国产精品美女久久久久av爽|