What Linux network programming needs to learn

Source: Internet
Author: User
Tags arithmetic db2 perl regular expression serialization gdb debugger

Linux C + + training hairCourse Modules

The Linux C + + course consists of the following modules:

Module01-linux System Basics

Since this series of courses is based on Linux (or Unix), familiarity with the Linux operating system is a prerequisite. The module's courses include the following:

    • Common Unix/linux Commands
      Familiar with the file management, text processing, process management, network, System management and other aspects of about 100 commonly used commands.
    • Learn more about Bash
      Learn about the Linux default shell:bash syntax, command execution, I/O redirection, Task control, and more.
    • Regular Expression Basics
      Since many powerful text processing commands in unix/linux such as grep, awk, sed, and vi editors, and other tools with regular expressions will have powerful power, it is necessary to familiarize yourself with regular expression syntax.
    • Find, grep, sed, awk
      Four powerful UNIX tools, especially SED and awk, are very powerful in text processing, and these commands should be mastered when working in Linux.
Module02-linux Development environment

The development tools and development environment under different system platforms are different. This module course focuses on a range of tools that are necessary for Linux C++/C development:

    • VI (VIM) text editor
      A UNIX world-standard text editor, simple and powerful, skilled use of VI is a basic and indispensable skill, both as a developer and as a system administrator.
    • gcc/g++/C + + compiler
      Use gcc/g++ to compile individual, multiple files, shared libraries, static libraries, and more with specific examples.
    • GDB Debugger
      Use specific examples to familiarize yourself with debugging a C + + application through GDB and fix the application run-time error.
    • Make and Makefile
      Learn to write makefile and use make to build a complete project.
    • CVS-Version Control
      Use CVS for version control of your code.
    • Eclipse CDT
      A powerful, C + + IDE, a powerful text editor, seamless integration with the GCC toolchain, easy gdb front end, integrated cvs/subversion, and more, provide many conveniences that greatly reduce the burden on developers.
Module03-c++ programming language

In-depth explanation of all aspects of the C + + programming language, namely the complete C + + syntax:

    • Language Basics
      Details about variables, expressions, statements, pointers, arrays, process controls, functions, file organization, and more.
    • Abstract mechanism-object-oriented programming
      An in-depth explanation of C + + abstraction mechanisms, encapsulation (class), inheritance, polymorphism, operator overloading, function objects, exception handling, and so on.
    • Templates-Generic programming
      This paper introduces the template mechanism of C + +, the content of class template, function template, template special and so on.
Module04-c++ Standard Library

A complete explanation of STL components: containers, algorithms, function objects, container adapters, iterators, iterator adapters, and so on, including string, I/O stream, for better understanding of STL container characteristics, sorting algorithms, Additional arrangements: A brief introduction to the data structure and a summary of common sorting algorithms 2 sections of the content.

    • Introduction to commonly used data structures
      This paper introduces the commonly used data structures such as dynamic array, linked-list, binary search tree, rb-tree, hash table, stack, queue, heap, etc.
    • STL Container Detailed description
      Vector, list, deque, stack, queue, priority_queue, map, set and other container characteristics and usage.
    • Introduction to common sorting algorithms
      The principle and implementation of various common sorting algorithms are briefly introduced.
    • STL algorithms and pre-defined function objects
      The standard library provides up to 60 algorithmic functions, involving sorting, searching, permutation, and so on, most of which use function objects such as greater, less, binder2nd, which details the use of the above algorithm and the specific role of the related function object.
    • Iterators
      STL containers and algorithms are highly decoupled, and the algorithm is convenient for the STL container, which is the iterator that sustains both.
      In this module, we introduce the categories of C + + iterators and the usage of various types of Delle adapters.
    • String-strings
      In contrast to C-style string processing, C + + provides a more secure and convenient string type, providing class with a variety of methods to ensure the security and convenience of string processing. This module provides a complete introduction to the use of string.
    • I/O stream
      The C + + standard library provides a powerful I/O flow framework. This module details the use of standard input/output, file input/output, string input/output streams, and controls the input/output format using the operator.
    • value
      This paper introduces the arithmetic of C + + numerical operation, such as Valarray, 4 sets of numerical algorithm function, random number and so on.
Module05-c++ Boost

       Boost is a wide-ranging, high-quality, widely used standard library of C + + that has been designed and implemented by a group of C + + Standards Board members, including TR1 has been incorporated into the C++0X standard library. The boost project is an extension of the C + + standard library, both in terms of style and content organization. As of the boost 1.43 release, the Boost project has approximately 100 useful libraries for a wide range of applications. This section introduces several components that are required for server-side development:

    • container and data structure
      Introduction boost.any, Boost.tuple, Boost.array, boost.unordered ( Based on hash table, i.e. Hash_map and hash_set) components.
    • string arithmetic and word processing
      describes components such as Boost.lexical_cast, Boost.format, Boost.string_algo, and so on.
    • Regular expression
      Regular expression syntax (Perl regular expression syntax), Boost.regex the use of libraries. The
    • smart pointer
      details the use of smart pointers such as shared_ptr, Scoped_ptr, weak_ptr, and so on.
    • Function Object related
      Details boost.bind, BOOST.MEM_FN, Boost.function, Boost.ref, BOOST.LAMBDA, and other components.
    • Serialization
      is familiar with the use of the Boost.serialization library through an instance. A detailed description of the
    • date and time
      Boost.date_time Library.
    • Multithreading
      is one of the essential components of server-side development: Multi-threaded support, Boost provides a cross-platform line libraries: Boost.thread.
      The courses in this module are detailed in Boost.thread. The
    • network programming
      Boost.asio Library provides an excellent, easy-to-program network programming framework through the encapsulation of native socket APIs for various operating systems, as well as event multiplexing and asynchronous I/O APIs. Make complex network programming tasks simple, secure, and efficient.
      The course of this module is presented through a series of examples: Build TCP synchronous/asynchronous servers and clients, UDP synchronous/asynchronous servers, and client applications with ASIO to familiarize yourself with ASIO interfaces and programming routines.
Module06-c++ ACE

ACE is a widely used, elegantly designed, high-performance C + + communication framework (not just a communication framework), and its design and implementation are referenced by many open source frameworks. is an excellent framework for building stable, high-performance, high-throughput, cross-platform server-side programs. The course of this module covers the following aspects:

    • Ace Base Network I/O related objects
      The use of Ace_sock, Ace_sock_acceptor, Ace_sock_connector, ace_inet_addr and other classes is introduced in detail.
    • Reactor frame
      The ACE reactor framework simplifies the development of event drivers, and event-driven is a fundamental feature of many networked applications where common event sources include I/O events, POSIX signals or windows handle firing, and timer expiration.
      This module introduces the use of Ace_event_handler, Timer, Ace_reactor and other classes, and uses the framework to build a simple multiplayer chat room application.
    • Task Framework
      The ACE task framework provides powerful and extensible object-oriented concurrency capabilities, such as deriving threads in object-based contexts (context), and passing messages and queuing messages between objects executing in different threads.
    • Acceptor-connector Frame
      The ACE Acceptor-connector Framework implements the Acceptor-connector pattern by releasing the activity, 2, and the activities required for the connection and initialization of peer services in networked applications, and the coupling of the processing that they perform once they are connected and initialized, by lifting: 1. , which enhances software reuse and scalability.
    • Proactor Frame
      The Proactor framework introduces the asynchronous I/O mechanism, which preserves the event multiplexing of the reactor framework, avoids the overhead of multithreading, and alleviates the bottleneck effect of reactive synchronous I/O.
MODULE07-Database development

As the most important part of server-side application data persistence, database occupies a very important position in server-side application development. This module is mainly for Oracle 10g and MySQL 5.1 relational database management system. This module contains the following content:

    • SQL language
      Provides details of the syntax and use of DML, DDL statements.
    • Oracle PL/SQL
      Provides a comprehensive overview of Oracle PL/SQL syntax, as well as writing stored procedures, functions, and triggers using PL/SQL.
    • MySQL stored procedures
      Write MySQL stored procedures, functions, triggers.
    • C + + OTL
      Otl:oracle, ODBC, and Db2-cli Template Library. Through the OTL, it is convenient and efficient to communicate with all kinds of mainstream relational database such as DB2, Oracle, Infomix, Sybase, MySQL and so on.
MODULE08-Project Combat

Project combat can choose one of the following items:

      • Project 1:x-messenger Servers
        IM (Instant Messaging) server farm, similar to MSN, QQ and other IM servers. Can be implemented based on Boost.asio or ACE.
      • Project 2:x-messenger client
        im (instant messaging) clients software, similar to MSN, QQ and other IM tools. Modern IM client features such as contacts management, peer-to file transfer, one-to-one text chat, group chat, etc. can be implemented based on Boost.asio or ACE.
      • Project 3:x- Crawler
        A web crawler, the front end of a search engine, collects data on the Web (Web content, parsing URLs) for use by search engines.
      • Other Items , which can be defined by the learner.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.