I'm learning network programming in C/C++ with using of multiplexing, multiprocessing or multithreading features available in Debian (and most Linux based OS). Currently I'm using sockets, however I'm open to continue with RPC, web-sockets, any so on.
I'm getting examples and training tasks from different books and online courses. Here is list of books I read to get good understanding of theory:
- Tanenbaum A.S. Operating systems design and implementation.
- Stevens W.R. TCP IP Illustrated. Part 1. The Protocols
- Stevens W.R. TCP IP Illustrated. Part 2. The Implementation
Online-courses available for Russians:
- Multithreaded programming in C++ https://stepic.org/course/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D0%A1%D0%A1%2B%2B-149/
- Highload cource from Mail.Ru https://www.youtube.com/watch?v=uYhQ2ot3XFg
- Many videos from Highload conference in Russia http://www.highload.ru/
Good papers to read:
- What Every Dev Must Know About Multithreaded Apps (about .NET)
- Pedro Ramalhete, Andreia Correia. Left-Right: A Concurrency Control Technique with Wait-Free Population Oblivious Reads
Books I need to read (as you see - a lot of work TODO):
- Mark Richards. Microservices vs. Service-Oriented Architecture
- Stevens W.R. Unix Network Programming Vol.2. Second edition. Interprocess communications.
- Paul E. McKenney. Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Jon C. Snader. Effective TCP/IP Programming
- Effective TCP/IP Programming
- Michael K. Johnson, Erik W. Troan. Linux Application Development
- Stevens W.R. Advanced Programming in the UNIX Environment
To keep all this information in my mind I'm using notes in Microsoft OneNote application (which is free and available on all platforms and in the web), so if you need any info, I'm ready to share these notes too.
I'm continue to read books, papers and articles, to learn video-courses available online, so I'm filling this collection of examples and trying to fix possible problems. So, any fixes and suggestions are welcome.