課程目錄:Linux Network Programming培訓(xùn)
        4401 人關(guān)注
        (78637/99817)
        課程大綱:

          Linux Network Programming培訓(xùn)

         

         

         

        Sockets
        Creating datagram sockets
        Receiving and sending data
        Creating and accepting TCP connections
        Closing sockets
        Handling errors
        Handling more than one client in a simple way
        Prefork model, as found in Apache
        Forking a new process per client
        Cleaning up after finished processes
        Threads
        Inetd, systemd units
        Waiting for data
        Blocking sockets
        Non-blocking sockets and select
        Select as a way to wait for "any of these sockets"
        Organizing reads and writes
        Dealing with short reads and writes
        Reading up to a delimiter
        Pipelined requests
        Application-level buffers
        Event-driven architecture
        Using select for multiplexing all client connections in one thread
        State machines
        Callback hell
        Event libraries
        "Green" threads
        Problem of 10000 connections
        Problems with prefork model and select-based loop
        poll as an alternative to select
        Realtime signals and why you shouldn't use them
        Epoll (linux) and kqueue (BSD)
        Why and when epoll and kqueue are faster than poll/select
        Timeouts and timers
        SIGALARM
        Timeout as a select argument
        A simple case of all-equal timeouts
        Priority queue as an abstract data stracture
        Binary heap as a priority queue implementation
        Timer wheel
        timerfd
        Integration with the operating system
        Traditional daemons
        Systemd socket activation
        Logging
        Handling signals
        Performance and scalability optimizations
        Choosing the right architecture
        Setting socket options