• <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++訓(xùn)練營(yíng)

            2014年3月20日 #

            Linux C++高性能網(wǎng)絡(luò)編程

                 摘要: 軒轅高端C++培訓(xùn):專注 Linux下C/C++、ACE、Boost、高性能服務(wù)器端應(yīng)用 開(kāi)發(fā)技術(shù)培訓(xùn)
            http://xuanyuan-soft.cn/  閱讀全文

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

            2013年9月3日 #

            Java02:使用Jdbc連接Oracle數(shù)據(jù)庫(kù)

            Java02:使用Jdbc連接Oracle數(shù)據(jù)庫(kù)

            一、編寫(xiě)代碼

            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

            三、運(yùn)行程序 JdbcTest02

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

            說(shuō)明:Oracle和MySQL的jdbc 驅(qū)動(dòng)都在 /opt/javalib/目錄下
            軒轅高端LinuxC/C++ACEBoost高性能服務(wù)器端應(yīng)用 開(kāi)發(fā)技術(shù)培訓(xùn)

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

            2013年1月27日 #

            Linux下C/C++、ACE、Boost、高性能服務(wù)器端應(yīng)用 開(kāi)發(fā)技術(shù)

            Linux C++培訓(xùn)(現(xiàn)場(chǎng)及遠(yuǎn)程班)

            中國(guó)唯一一家專注 LinuxC/C++ACEBoost高性能服務(wù)器端應(yīng)用 開(kāi)發(fā)技術(shù)培訓(xùn)的機(jī)構(gòu)。

            上課方式

            現(xiàn)場(chǎng)班:全日制脫產(chǎn)學(xué)習(xí)、歷時(shí)4個(gè)月,每月開(kāi)班。

            遠(yuǎn)程班:遠(yuǎn)程視頻學(xué)習(xí),學(xué)習(xí)時(shí)間自定,隨時(shí)開(kāi)課。

            課程模塊

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

            Module01 - Linux系統(tǒng)基礎(chǔ)

            由于本系列課程基于Linux(或UNIX),熟悉Linux操作系統(tǒng)是必要的前提。 該模塊的課程包含以下方面的內(nèi)容:

            • 常用Unix/Linux命令
              熟悉文件管理、文本處理、進(jìn)程管理、網(wǎng)絡(luò)、系統(tǒng)管理等各個(gè)方面大約100個(gè)常用的命令。

            • 深入了解bash
              了解Linux默認(rèn)shell: bash 的語(yǔ)法、命令執(zhí)行、I/O重定向、任務(wù)控制等。

            • 正則表達(dá)式基礎(chǔ)
              由于UNIX/Linux中很多強(qiáng)大的文本處理命令如:grep、awk、sed,還有vi編輯器等工具配合正則表達(dá)式將產(chǎn)生強(qiáng)大的威力,所以熟悉正則表達(dá)式語(yǔ)法是十分必要的。

            • find、grep、sed、awk
              四個(gè)強(qiáng)大的UNIX工具,特別是sed、awk在文本處理方面的能力非常強(qiáng)大,在Linux下工作應(yīng)該掌握這幾個(gè)命令。

            Module02 - Linux開(kāi)發(fā)環(huán)境

            不同系統(tǒng)平臺(tái)下的開(kāi)發(fā)工具、開(kāi)發(fā)環(huán)境各有不同。該模塊課程關(guān)注的是Linux C++/C開(kāi)發(fā)所必需的一系列工具:

            • vi(vim)文本編輯器
              一個(gè)UNIX世界標(biāo)準(zhǔn)的文本編輯器,簡(jiǎn)約而強(qiáng)大,不論作為開(kāi)發(fā)人員還是系統(tǒng)管理員,熟練使用vi是一項(xiàng)基本的、且不可或缺的技能。

            • gcc/g++ C/C++編譯器
              通過(guò)具體的示例講解使用gcc/g++編譯單個(gè)、多個(gè)文件、共享庫(kù)、靜態(tài)庫(kù)等。

            • gdb 調(diào)試器
              通過(guò)具體的示例來(lái)熟悉通過(guò)gdb來(lái)調(diào)試C/C++應(yīng)用程序、修正應(yīng)用程序運(yùn)行期的錯(cuò)誤。

            • make和makefile
              學(xué)習(xí)編寫(xiě)makefile,使用make來(lái)構(gòu)建一個(gè)完整的項(xiàng)目。

            • CVS - 版本控制
              運(yùn)用CVS來(lái)進(jìn)行代碼的版本控制。

            • Eclipse CDT
              一個(gè)非常強(qiáng)大的C/C++ IDE,強(qiáng)大的文本編輯器、與GCC工具鏈的無(wú)縫結(jié)合、方便的gdb前端、集成CVS/Subversion等版本控制等,提供眾多的便利,大大減輕開(kāi)發(fā)者的負(fù)擔(dān)。

            Module03 - C++編程語(yǔ)言

            深入講解C++編程語(yǔ)言的各個(gè)方面,即完整的C++語(yǔ)法講解:

            • 語(yǔ)言基礎(chǔ)
              詳細(xì)介紹變量、表達(dá)式、語(yǔ)句、指針、數(shù)組、流程控制、函數(shù)、文件組織等。

            • 抽象機(jī)制 - 面向?qū)ο缶幊?/strong>
              深入講解C++的抽象機(jī)制,封裝(類)、繼承、多態(tài);操作符重載、函數(shù)對(duì)象、異常處理等。

            • 模板 - 泛型編程
              詳細(xì)介紹C++的模板機(jī)制,類模板、函數(shù)模板、模板特化等方面的內(nèi)容。

            Module04 - C++標(biāo)準(zhǔn)庫(kù)

            完整地講解STL各大組件:容器、算法、函數(shù)對(duì)象、容器適配器、迭代器、迭代器適配器等;另外還包括string、I/O stream;為了更好地了解STL容器的特性、排序算法,額外安排:數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介和常用排序算法簡(jiǎn)介2個(gè)部分的內(nèi)容。

            • 常用數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介
              介紹動(dòng)態(tài)數(shù)組、linked-list、binary search tree、rb-tree、hash table、stack、queue、heap等常用的數(shù)據(jù)結(jié)構(gòu)。

            • STL容器詳細(xì)介紹
              vector、list、deque、stack、queue、priority_queue、map、set等容器的特性和用法。

            • 常見(jiàn)排序算法介紹
              簡(jiǎn)要介紹各種常見(jiàn)排序算法的原理,及其實(shí)現(xiàn)。

            • STL算法和預(yù)定義函數(shù)對(duì)象
              標(biāo)準(zhǔn)庫(kù)提供了多達(dá)60多個(gè)算法函數(shù),涉及排序、搜索、排列組合等多個(gè)方面,其中多數(shù)算法會(huì)使用如greater、less、binder2nd等函數(shù)對(duì)象,該單元的課程詳細(xì)介紹了上述算法的使用和相關(guān)函數(shù)對(duì)象的具體作用。

            • 迭代器
              STL容器和算法高度解耦,而算法之所以能方便的作用于STL容器,維系二者的就是迭代器。
              在這個(gè)單元的課程中講介紹C++迭代器的類別、各類迭代器適配器的用法。

            • string - 字符串
              相對(duì)于C風(fēng)格的字符串處理,C++提供了更安全和方便的字符串類型 string,給class提供類眾多的方法確保針對(duì)字符串處理的安全、便捷性。該單元的課程講完整地介紹string的使用。

            • I/O stream
              C++標(biāo)準(zhǔn)庫(kù)提供的一個(gè)強(qiáng)大的I/O流框架。本單元詳細(xì)介紹標(biāo)準(zhǔn)輸入/輸出、文件輸入/輸出、字符串輸入/輸出流的運(yùn)用,利用操控符來(lái)控制輸入/輸出的格式。

            •  數(shù)值
              介紹C++數(shù)值運(yùn)算的算法,如valarray、4組數(shù)值算法函數(shù)、隨機(jī)數(shù)等方面的內(nèi)容。

            Module05 - C++ Boost

            Boost是由C++標(biāo)準(zhǔn)委員會(huì)成員發(fā)起、眾多C++業(yè)界高人參與設(shè)計(jì)并實(shí)現(xiàn)的一個(gè)涉及面廣、質(zhì)量高且業(yè)已廣泛使用的C++標(biāo)準(zhǔn)后備庫(kù),其中 TR1已經(jīng)被納入C++0x標(biāo)準(zhǔn)庫(kù)。不論從風(fēng)格和內(nèi)容組織上講,都可以認(rèn)為Boost項(xiàng)目是C++標(biāo)準(zhǔn)庫(kù)的延伸。截止到boost 1.43版本,boost項(xiàng)目擁有大約100個(gè)用途廣泛的實(shí)用庫(kù)。這部分課程將介紹服務(wù)器端開(kāi)發(fā)所需要的幾個(gè)組件:

            • 容器與數(shù)據(jù)結(jié)構(gòu)
              介紹boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等組件。

            • 字符串算法和文字處理
              介紹boost.lexical_cast, boost.format, boost.string_algo等組件。

            • 正則表達(dá)式
              正則表達(dá)式語(yǔ)法(perl正則表達(dá)式語(yǔ)法)的講解,boost.regex庫(kù)的使用。

            • 智能指針
              詳細(xì)介紹shared_ptr、scoped_ptr、weak_ptr等智能指針的使用。

            • 函數(shù)對(duì)象相關(guān)
              詳細(xì)介紹boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等組件。

            • 序列化
              通過(guò)實(shí)例熟悉boost.serialization庫(kù)的用法。

            • 日期與時(shí)間
              boost.date_time庫(kù)的詳細(xì)介紹。

            • 多線程
              作為服務(wù)器端開(kāi)發(fā)必不可少的內(nèi)容之一:多線程支持,boost提供了一個(gè)跨平臺(tái)的線程庫(kù):boost.thread。
              本單元的課程詳細(xì)介紹boost.thread。

            • 網(wǎng)絡(luò)編程
              boost.asio庫(kù),通過(guò)對(duì)各類操作系統(tǒng)原生的socket API以及事件多路分離、異步I/O API的封裝,構(gòu)成了一個(gè)性能優(yōu)秀、便于編程的網(wǎng)絡(luò)編程框架,使復(fù)雜的網(wǎng)絡(luò)編程任務(wù)變得簡(jiǎn)單、安全、并且高效。
              本單元的課程通過(guò)一系列的示例來(lái)展示:通過(guò)asio來(lái)構(gòu)建TCP同步/異步服務(wù)器和客戶端、UDP同步/異步服務(wù)器和客戶端應(yīng)用,從而熟悉asio的接口和編程套路。

            Module06 - C++ ACE

            ACE是一個(gè)被廣泛使用、設(shè)計(jì)優(yōu)雅、高性能的C++通信框架(不僅僅是通信框架),其設(shè)計(jì)及實(shí)現(xiàn)被眾多開(kāi)源框架所借鑒。是構(gòu)建穩(wěn)定、高性能、高吞吐量、跨平臺(tái)的服務(wù)器端程序的優(yōu)秀框架。本模塊的課程包含以下幾個(gè)方面: 

            • ACE基礎(chǔ)網(wǎng)絡(luò)I/O相關(guān)對(duì)象
              詳細(xì)介紹ACE_SOCK、ACE_SOCK_Acceptor、ACE_SOCK_Connector、ACE_INET_Addr等class的使用。

            • Reactor框架
              ACE Reactor框架簡(jiǎn)化事件驅(qū)動(dòng)程序的開(kāi)發(fā),而事件驅(qū)動(dòng)是很多網(wǎng)絡(luò)化應(yīng)用的基本特征,這些應(yīng)用常見(jiàn)的事件源包括I/O事件、Posix信號(hào)或 Windows句柄激發(fā)以及定時(shí)器到期等。
              本單元介紹ACE_Event_Handler、Timer、ACE_Reactor等類的使用,并使用該框架構(gòu)建一個(gè)簡(jiǎn)易的多人聊天室應(yīng)用。

            • Task框架
              ACE Task框架提供了強(qiáng)大而可擴(kuò)展的面向?qū)ο蟛l(fā)能力,如在基于對(duì)象的上下文(context)中派生線程,以及在執(zhí)行不同線程中的對(duì)象之間傳遞消息和對(duì)消息進(jìn)行排隊(duì)。

            • Acceptor-Connector框架
              ACE Acceptor-Connector框架實(shí)現(xiàn)了Acceptor-Connector模式,這種模式通過(guò)解除:1,網(wǎng)絡(luò)化應(yīng)用中相互協(xié)作的對(duì)等服務(wù)的連 接和初始化所需的活動(dòng)、2,以及它們一旦連接和初始化后所執(zhí)行的處理的耦合,增強(qiáng)了軟件復(fù)用和可擴(kuò)展性。

            • Proactor框架
              Proactor框架引入異步I/O機(jī)制,既保留了Reactor框架的事件多路分離,避免多線程的開(kāi)銷,同時(shí)還緩和了反應(yīng)式的同步I/O的瓶頸效應(yīng)。

            Module07 - 數(shù)據(jù)庫(kù)開(kāi)發(fā)

            數(shù)據(jù)庫(kù)作為服務(wù)器端應(yīng)用數(shù)據(jù)持久化的最重要的部件,在服務(wù)器端應(yīng)用開(kāi)發(fā)中占有非常重要的地位。本模塊主要針對(duì)Oracle 10g和MySQL 5.1兩種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。本模塊包含以下內(nèi)容:

            • SQL語(yǔ)言
              詳細(xì)介紹DML、DDL語(yǔ)句的語(yǔ)法和使用。

            • Oracle PL/SQL
              全面介紹Oracle PL/SQL語(yǔ)法,以及使用PL/SQL編寫(xiě)存儲(chǔ)過(guò)程、函數(shù)、觸發(fā)器。

            • MySQL存儲(chǔ)過(guò)程
              編寫(xiě)MySQL存儲(chǔ)過(guò)程、函數(shù)、觸發(fā)器。

            • C++ OTL
              OTL:Oracle、ODBC and DB2-CLI Template Library。通過(guò)OTL,可以方便、高效的與各類主流的關(guān)系型數(shù)據(jù)庫(kù)如DB2、Oracle、Infomix、Sybase、MySQL等通信。

            Module08 - 項(xiàng)目實(shí)戰(zhàn)

            項(xiàng)目實(shí)戰(zhàn)可選以下項(xiàng)目之一:

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

            • 項(xiàng)目2:X-Messenger Client
              IM(即時(shí)通信)客戶端軟件,類似于MSN、QQ等IM的工具。實(shí)現(xiàn)Contacts管理、P2P文件傳輸、P2P一對(duì)一文本聊天、群聊等現(xiàn)代IM客戶端功能,可以基于Boost.asio或ACE實(shí)現(xiàn)。

            • 項(xiàng)目3:X-Crawler
              一個(gè)網(wǎng)絡(luò)爬蟲(chóng),即搜索引擎的前端,負(fù)責(zé)收集網(wǎng)絡(luò)上的數(shù)據(jù)(網(wǎng)頁(yè)內(nèi)容、解析URL)供搜索引擎使用。

            • 其他項(xiàng)目,可由學(xué)員自行定義。

            課程資源

            可獲取的課程資源見(jiàn):教學(xué)資源

            http://xuanyuan-soft.cn

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

            2012年11月6日 #

            Linux高性能網(wǎng)絡(luò)編程

            Linux高性能網(wǎng)絡(luò)編程

            一、課程目標(biāo)

            昆山軒轅高端IT培訓(xùn)本次課程深入講解Linux下的socket編程,并以此為基礎(chǔ),著重討論如何提高網(wǎng)絡(luò)服務(wù)端應(yīng)用的性能,通過(guò)本次課程的學(xué)習(xí),學(xué)員將收獲以下方面的成果:

            • 熟練使用socket系列函數(shù)進(jìn)行網(wǎng)絡(luò)編程;
            • 深刻理解服務(wù)端應(yīng)用的性能要求;
            • 利用Linux提供的各種機(jī)制,有效地解決服務(wù)端應(yīng)用的性能瓶頸。

            二、參訓(xùn)要求

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

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

            三、課程實(shí)踐環(huán)境

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

            四、課程大綱

            本次課程由以下幾個(gè)部分構(gòu)成:

            1、POSIX Thread - 多線程

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

            2、Socket 簡(jiǎn)介

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

            3、TCP Socket

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

            4、UDP Socket

            • recvfrom()和sendto():收發(fā)UDP數(shù)據(jù)報(bào)
            • UDP Echo Server
            • UDP Echo Client
            • 組播(Multicast)和廣播(Broadcast)

            5、Socket Options和 IP Options

            • 常用的Socket Options
            • 常用的IP Options
            • Socket選項(xiàng)和IP選項(xiàng)對(duì)網(wǎng)絡(luò)應(yīng)用的影響

            6、I/O多路復(fù)用:構(gòu)建反應(yīng)式(Reactive)網(wǎng)絡(luò)應(yīng)用

            • UNIX I/O多路復(fù)用機(jī)制概要
            • 為什么I/O 多路復(fù)用對(duì)于網(wǎng)絡(luò)應(yīng)用很重要
            • I/O 多路復(fù)用與多線程(反應(yīng)式模型和并發(fā)模型)
            • select / poll
            • 在TCP Server和UDP Server中使用select和poll
            • Linux特有I/O 多路復(fù)用機(jī)制:Event poll (epoll)
            • 在TCP Server和UDP Server中使用epoll

            7、異步I/O:構(gòu)建前攝式(Proactive)網(wǎng)絡(luò)應(yīng)用

            • 相關(guān)概念:同步I/O和異步I/O、Proactor模式
            • 異步I/O 是如何提高I/O 性能的
            • 異步I/O系列操作
            • 使用異步I/O的機(jī)制構(gòu)建TCP Server

            8、高性能網(wǎng)絡(luò)編程討論

            • 考究高性能網(wǎng)絡(luò)編程中應(yīng)該遵循的原則,討論并發(fā)、同步、事件多路分離等機(jī)制的適用場(chǎng)合
            • 網(wǎng)絡(luò)應(yīng)用的瓶頸何在
            • 事件多路分離 vs 一連接一線程 (Event demultiplexing vs One thread per connection)
            • 同步I/O vs 異步I/O (Synchronous I/O vs Asynchronous I/O)
            • 如何適當(dāng)?shù)厥褂枚嗑€程
            • 什么時(shí)候需要多個(gè) 事件多路分離線程

            9、應(yīng)用層協(xié)議定義與實(shí)現(xiàn)

            • 為什么要自定義應(yīng)用層協(xié)議
            • 定義應(yīng)用層協(xié)議 (以XMMEP協(xié)議為例)
            • 用C++實(shí)現(xiàn)自定義的協(xié)議 (以XMMEP協(xié)議為例)

            注:XMMEP為X-Messenger Message Exchanging Protocol

            六、課程資源

                  可獲取的課程資源見(jiàn):教學(xué)資源

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

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

            2012年8月29日 #

            ACE高性能網(wǎng)絡(luò)編程

                 摘要: 昆山軒轅高端IT培訓(xùn)---ACE高性能網(wǎng)絡(luò)編程一、課程目標(biāo)本次課程針對(duì)使用ACE工具包進(jìn)行高性能網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā),通過(guò)本次課程的學(xué)習(xí),學(xué)員將具備以下能力:了解ACE的架構(gòu)和組件;理解現(xiàn)代操作系統(tǒng)線程模型、并發(fā)以及同步機(jī)制;熟練使用ACE線程管理和同步機(jī)制接口開(kāi)發(fā)并發(fā)應(yīng)用;熟練使用ACE基本的IPC SAP接口,如SOCK_Stream、SOCK_Dgram等;深刻理解現(xiàn)代操作系統(tǒng)中事件多路分離和分派機(jī)...  閱讀全文

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

            2012年8月24日 #

            軒轅Linux C++開(kāi)放實(shí)驗(yàn)室

            簡(jiǎn)介

            為方便廣大Linux軟件開(kāi)發(fā)愛(ài)好者,軒轅高端IT培訓(xùn)中心于2009年10月設(shè)立了Linux開(kāi)放實(shí)驗(yàn)室,軒轅Linux開(kāi)放實(shí)驗(yàn)室提供了完整的 Linux軟件開(kāi)發(fā)環(huán)境,包括:Ubuntu Linux 10.04 Server、C/C++(GCC、GDB)、make、Java、Python、Perl、C++ Boost、C++ ACE、C++ OTL、Oracle、DB2、MySQL、Tomcat...,囊括了網(wǎng)絡(luò)、多線程、數(shù)據(jù)庫(kù)等服務(wù)器端軟件開(kāi)發(fā)的各個(gè)方面。

            Linux開(kāi)放實(shí)驗(yàn)室典型用途

            • 熟悉Linux操作系統(tǒng),如系統(tǒng)命令、Shell編程、vi等編輯器;
            • C++語(yǔ)言的學(xué)習(xí)與軟件開(kāi)發(fā),包括基于Boost和ACE的軟件開(kāi)發(fā);
            • C++數(shù)據(jù)庫(kù)開(kāi)發(fā),OTL;
            • Java語(yǔ)言的學(xué)習(xí)與軟件開(kāi)發(fā);
            • Java數(shù)據(jù)庫(kù)開(kāi)發(fā),jdbc;
            • Python、Perl等腳本語(yǔ)言的學(xué)習(xí)與軟件開(kāi)發(fā);
            • 更多您能發(fā)掘到的用途...

            開(kāi)發(fā)環(huán)境

            • 操作系統(tǒng):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++第三方庫(kù):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;
            • 數(shù)據(jù)庫(kù):Oracle 10g XE、DB2 Express-C 9.7、MySQL 5.1.41;
            • Python 2.6.5、Perl 5.10.1;
            • 版本控制:CVS 1.12.13
            • ...

            實(shí)驗(yàn)室面向的人群

            • 所有能通過(guò)互聯(lián)網(wǎng)登錄到實(shí)驗(yàn)室服務(wù)器的朋友。
            http://www.xuanyuan-soft.cn/zh/lab/registration

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

            2012年1月27日 #

            Boost高性能網(wǎng)絡(luò)編程

            一、課程目標(biāo)

            本次課程圍繞高性能網(wǎng)絡(luò)編程這一主題,從眾多的Boost類庫(kù)中挑選出Boost.Asio、Boost.Thread以及其它配套的實(shí)用庫(kù),作為主要學(xué)習(xí)的內(nèi)容,通過(guò)本次課程的學(xué)習(xí),學(xué)員將具備以下能力:

            • 掌握智能指針、高階函數(shù)對(duì)象、對(duì)象序列化/反序列化等類庫(kù)的使用;
            • 理解現(xiàn)代操作系統(tǒng)線程模型、并發(fā)以及同步機(jī)制;
            • 熟練使用Boost.Thread線程管理和同步機(jī)制接口開(kāi)發(fā)并發(fā)應(yīng)用;
            • 深刻理解現(xiàn)代操作系統(tǒng)中事件多路分離和分派機(jī)制如select、epoll等、了解異步I/O以及完成事件的分派;
            • 熟練使用Boost.Asio構(gòu)建穩(wěn)定、高效和靈活的網(wǎng)絡(luò)應(yīng)用。

            四、課程大綱

            本次課程由以下幾個(gè)部分構(gòu)成:

            1、Boost.Serialization - 序列化

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

            2、Boost.Smart_Ptr - 智能指針

            • 回顧std::auto_ptr<>;
            • 無(wú)Copyable 語(yǔ)義的scoped_ptr<>;
            • shared_ptr<>;
            • weak_ptr<>;
            • enable_shared_from_this<>;

            3、Boost.Bind and Boost.Function- 函數(shù)對(duì)象相關(guān)

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

            4、Boost.Signals2 - 實(shí)現(xiàn)回調(diào)機(jī)制

            • Boost Signal2:線程安全的Signal-Slot機(jī)制 (Publishers → Signals/Subscribers → Slots),即Observer模式的實(shí)現(xiàn);
            • 簡(jiǎn)單的回調(diào);
            • 多個(gè)Slot回調(diào);
            • 管理Connections;
            • 一些示例。

            5、一些實(shí)用類庫(kù)

            • Boost.Property_Tree;
            • Boost.Format;

            6、Boost.Thread - 多線程

            • 線程與進(jìn)程之區(qū)別;
            • 用戶線程與內(nèi)核線程;
            • 不同操作系統(tǒng)中的線程模型;
            • 線程管理:線程創(chuàng)建、中斷、分離/連接等;
            • 同步機(jī)制:Mutex、Lock、Condition_variable、TSS等。

            7、Boost.Asio - 網(wǎng)絡(luò)編程

            Boost.Asio庫(kù),通過(guò)對(duì)各類操作系統(tǒng)原生的socket API以及事件多路分離、異步I/O API的封裝,構(gòu)成了一個(gè)性能優(yōu)秀、可移植性高、便于編程的網(wǎng)絡(luò)編程框架,使復(fù)雜的網(wǎng)絡(luò)編程任務(wù)變得簡(jiǎn)單、安全、并且高效。

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

            8、高性能網(wǎng)絡(luò)編程討論

            • 考究高性能網(wǎng)絡(luò)編程中應(yīng)該遵循的原則,討論并發(fā)、同步、事件多路分離等機(jī)制的適用場(chǎng)合。
            • 網(wǎng)絡(luò)應(yīng)用的瓶頸在何處?
            • 事件多路分離 vs 一連接一線程 (Event demultiplexing vs One thread per connection);
            • 同步I/O vs 異步I/O (Synchronous I/O vs Asynchronous I/O);
            • 如何適當(dāng)?shù)厥褂枚嗑€程?
            • 什么時(shí)候需要多個(gè) 事件多路分離線程?

            9、應(yīng)用層協(xié)議定義與實(shí)現(xiàn)

            • 為什么要自定義應(yīng)用層協(xié)議?
            • 定義應(yīng)用層協(xié)議 (以XMMEP協(xié)議為例);
            • 用C++實(shí)現(xiàn)自定義的協(xié)議 (以XMMEP協(xié)議為例)。

            注:XMMEP為X-Messenger Message Exchanging Protocol。

            六、課程資源

                  可獲取的課程資源見(jiàn):教學(xué)資源

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

            2010年11月1日 #

            C++ Boost

            Boost培訓(xùn)(項(xiàng)目班)

            昆山軒轅高端IT培訓(xùn),C++ Boost現(xiàn)場(chǎng)項(xiàng)目班課程,通過(guò)對(duì)Boost幾個(gè)實(shí)用組件的學(xué)習(xí),掌握高吞吐量、低延遲的服務(wù)器端應(yīng)用開(kāi)發(fā)的有效知識(shí),且通過(guò)最終項(xiàng)目的歷練,學(xué)員將對(duì)高性能服務(wù)器端應(yīng)用開(kāi)發(fā)有一個(gè)清晰的認(rèn)識(shí),并能熟練使用Boost相關(guān)的類庫(kù)來(lái)開(kāi)發(fā)服務(wù)器端應(yīng)用。

            該課程的項(xiàng)目實(shí)戰(zhàn)部分時(shí)間,主要講解服務(wù)器端應(yīng)用的架構(gòu)、設(shè)計(jì),以及項(xiàng)目實(shí)現(xiàn)技術(shù)的運(yùn)用。

            上課方式

            現(xiàn)場(chǎng)班:全日制脫產(chǎn)學(xué)習(xí),歷時(shí)1個(gè)月,每月開(kāi)班。

            遠(yuǎn)程班:遠(yuǎn)程視頻學(xué)習(xí),學(xué)習(xí)時(shí)間自定,隨時(shí)開(kāi)課。

            課程大綱

            C++ Boost強(qiáng)化班課程由以下模塊組成:

            1 - C++ Boost

                   Boost是由C++標(biāo)準(zhǔn)委員會(huì)成員發(fā)起、眾多C++業(yè)界高人參與設(shè)計(jì)并實(shí)現(xiàn)的一個(gè)涉及面廣、質(zhì)量高且業(yè)已廣泛使用的C++標(biāo)準(zhǔn)后備庫(kù),其中 TR1已經(jīng)被納入C++0x標(biāo)準(zhǔn)庫(kù)。不論從風(fēng)格和內(nèi)容組織上講,都可以認(rèn)為Boost項(xiàng)目是C++標(biāo)準(zhǔn)庫(kù)的延伸。截止到boost 1.43版本,boost項(xiàng)目擁有大約100個(gè)用途廣泛的實(shí)用庫(kù)。這部分課程將介紹服務(wù)器端開(kāi)發(fā)所需要的幾個(gè)組件:

            • 容器與數(shù)據(jù)結(jié)構(gòu)
              介紹boost.any, boost.tuple, boost.array, boost.unordered(基于hash table,即hash_map和hash_set)等組件。

            • 字符串算法和文字處理
              介紹boost.lexical_cast, boost.format, boost.string_algo等組件。

            • 正則表達(dá)式
              正則表達(dá)式語(yǔ)法(perl正則表達(dá)式語(yǔ)法)的講解,boost.regex庫(kù)的使用。

            • 智能指針
              詳細(xì)介紹shared_ptr、scoped_ptr、weak_ptr等智能指針的使用。

            • 函數(shù)對(duì)象相關(guān)
              詳細(xì)介紹boost.bind, boost.mem_fn, boost.function, boost.ref, boost.lambda等組件。

            • Boost.Signals2 - 實(shí)現(xiàn)回調(diào)機(jī)制
              Boost Signal2:線程安全的Signal-Slot機(jī)制 (Publishers → Signals/Subscribers → Slots),即Observer模式的實(shí)現(xiàn);

            • 序列化
              通過(guò)實(shí)例熟悉boost.serialization庫(kù)的用法。

            • 日期與時(shí)間
              boost.date_time庫(kù)的詳細(xì)介紹。

            • 多線程
              作為服務(wù)器端開(kāi)發(fā)必不可少的內(nèi)容之一:多線程支持,boost提供了一個(gè)跨平臺(tái)的線程庫(kù):boost.thread。
              本單元的課程詳細(xì)介紹boost.thread。

            • 網(wǎng)絡(luò)編程
              boost.asio庫(kù),通過(guò)對(duì)各類操作系統(tǒng)原生的socket API以及事件多路分離、異步I/O API的封裝,構(gòu)成了一個(gè)性能優(yōu)秀、便于編程的網(wǎng)絡(luò)編程框架,使復(fù)雜的網(wǎng)絡(luò)編程任務(wù)變得簡(jiǎn)單、安全、并且高效。
              本單元的課程通過(guò)一系列的示例來(lái)展示:通過(guò)asio來(lái)構(gòu)建TCP同步/異步服務(wù)器和客戶端、UDP同步/異步服務(wù)器和客戶端應(yīng)用,從而熟悉asio的接口和編程套路。

            2 - 項(xiàng)目實(shí)戰(zhàn)

                   課程結(jié)束后,學(xué)員需基于C++、Boost實(shí)現(xiàn)以下項(xiàng)目:

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

            課程資源

                   可獲取的課程資源見(jiàn):教學(xué)資源

            http://xuanyuan-soft.cn

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

            2010年7月22日 #

            C++ ACE項(xiàng)目班

            C++ ACE 項(xiàng)目班

                   昆山軒轅高端IT培訓(xùn),C++ ACE現(xiàn)場(chǎng)項(xiàng)目班課程,通過(guò)對(duì)ACE幾個(gè)主要的框架的學(xué)習(xí),掌握高吞吐量、低延遲的服務(wù)器端應(yīng)用開(kāi)發(fā)的有效知識(shí),且通過(guò)最終項(xiàng)目的歷練,學(xué)員將對(duì)高性能服務(wù)器端應(yīng)用開(kāi)發(fā)有一個(gè)清晰的認(rèn)識(shí),并能熟練使用ACE相關(guān)的框架來(lái)開(kāi)發(fā)服務(wù)器端應(yīng)用。

                   該課程的項(xiàng)目實(shí)戰(zhàn)部分時(shí)間,主要講解服務(wù)器端應(yīng)用的架構(gòu)、設(shè)計(jì),以及項(xiàng)目實(shí)現(xiàn)技術(shù)的運(yùn)用。

            上課方式

                   現(xiàn)場(chǎng)班:全日制脫產(chǎn)學(xué)習(xí),歷時(shí)1個(gè)月。學(xué)費(fèi)¥4,000元。

                   遠(yuǎn)程班:遠(yuǎn)程視頻學(xué)習(xí),學(xué)費(fèi)3000元

            課程大綱

                   C++ ACE現(xiàn)場(chǎng)項(xiàng)目班的課程由以下部分組成:

            1 - C++ ACE

                   ACE是一個(gè)被廣泛使用、設(shè)計(jì)優(yōu)雅、高性能的C++通信框架(不僅僅是通信框架),其設(shè)計(jì)及實(shí)現(xiàn)被眾多開(kāi)源框架所借鑒。是構(gòu)建穩(wěn)定、高性能、高吞吐量、跨平臺(tái)的服務(wù)器端程序的優(yōu)秀框架。本模塊的課程包含以下幾個(gè)方面: 

            • ACE基礎(chǔ)網(wǎng)絡(luò)I/O相關(guān)對(duì)象
              詳細(xì)介紹ACE_SOCK、ACE_SOCK_Acceptor、ACE_SOCK_Connector、ACE_INET_Addr等class的使用。
            • Reactor框架
              ACE Reactor框架簡(jiǎn)化事件驅(qū)動(dòng)程序的開(kāi)發(fā),而事件驅(qū)動(dòng)是很多網(wǎng)絡(luò)化應(yīng)用的基本特征,這些應(yīng)用常見(jiàn)的事件源包括I/O事件、Posix信號(hào)或 Windows句柄激發(fā)以及定時(shí)器到期等。
              本單元介紹ACE_Event_Handler、Timer、ACE_Reactor等類的使用,并使用該框架構(gòu)建一個(gè)簡(jiǎn)易的多人聊天室應(yīng)用。
            • Service Configuration框架
              Service Configuration框架允許應(yīng)用在運(yùn)行期重新配置其服務(wù)(包括靜態(tài)服務(wù)和動(dòng)態(tài)服務(wù)),而不必修改、重新編譯或重新連接程序自身,或是關(guān)閉和重啟應(yīng)用等。
            • Task框架
              ACE Task框架提供了強(qiáng)大而可擴(kuò)展的面向?qū)ο蟛l(fā)能力,如在基于對(duì)象的上下文(context)中派生線程,以及在執(zhí)行不同線程中的對(duì)象之間傳遞消息和對(duì)消息進(jìn)行排隊(duì)。
            • Acceptor-Connector框架
              ACE Acceptor-Connector框架實(shí)現(xiàn)了Acceptor-Connector模式,這種模式通過(guò)解除:1,網(wǎng)絡(luò)化應(yīng)用中相互協(xié)作的對(duì)等服務(wù)的連接和初始化所需的活動(dòng)、2,以及它們一旦連接和初始化后所執(zhí)行的處理的耦合,增強(qiáng)了軟件復(fù)用和可擴(kuò)展性。
            • Proactor框架
              Proactor框架引入異步I/O機(jī)制,既保留了Reactor框架的事件多路分離,避免多線程的開(kāi)銷,同時(shí)還緩和了反應(yīng)式的同步I/O的瓶頸效應(yīng)。

            2 - 項(xiàng)目實(shí)戰(zhàn)

                   課程結(jié)束后,學(xué)員需基于C++、ACE實(shí)現(xiàn)以下項(xiàng)目:

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

            課程資源

                   可獲取的課程資源見(jiàn):教學(xué)資源


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

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

            僅列出標(biāo)題  
            久久国产亚洲精品麻豆| 99精品国产在热久久无毒不卡 | 亚洲欧美日韩中文久久| 色8久久人人97超碰香蕉987| 久久久国产精品福利免费| 亚洲国产精品无码久久青草| 亚洲国产精品高清久久久| 国产精品久久久久久福利69堂| 亚洲国产精品久久久久网站| 中文精品99久久国产| 亚洲AV无一区二区三区久久| 精品久久久久久无码国产| 久久婷婷五月综合97色| 久久影院午夜理论片无码| 久久99精品国产自在现线小黄鸭| 国内精品久久久久国产盗摄| 国产美女亚洲精品久久久综合| 99久久精品久久久久久清纯 | 国产aⅴ激情无码久久| 亚洲成色999久久网站| 久久精品中文騷妇女内射| 婷婷久久香蕉五月综合加勒比| segui久久国产精品| 亚洲伊人久久大香线蕉苏妲己| 亚洲精品无码专区久久久| 久久亚洲国产成人影院网站| 青青国产成人久久91网| 99999久久久久久亚洲| 久久久无码精品亚洲日韩按摩 | 91超碰碰碰碰久久久久久综合| 久久亚洲AV成人无码电影| 久久亚洲日韩看片无码| 久久精品成人欧美大片| 无码伊人66久久大杳蕉网站谷歌| 久久噜噜久久久精品66| 午夜精品久久影院蜜桃| 久久精品人人做人人爽电影| 色婷婷久久久SWAG精品| 一级A毛片免费观看久久精品| 精品久久久久久无码人妻蜜桃| 精品无码久久久久久国产|