Following the previous System Programming-Basics, I moved into socket programming, and the lecture made clear what had felt abstract before - concepts like "Socket = File" and "when you go TCP, it becomes TCP Socket." I couldn't understand what these meant before.
Also, the 3-way handshake process and the use of listen, bind, accept functions that I couldn't grasp when just looking at theory - experiencing how coding follows the exact same sequence as shown in diagrams made me feel like I could become friends(?) with socket programming diagrams. It seems like this was a meaningful lecture in that regard.
=====
By this week, I'll complete a full review of the socket programming lectures / restudy the address book linked list, and then move into network programming. Since there's a lot of overlap with my previous studies in OS, TCP/IP, and system programming, understanding hasn't been too difficult, so progress is going faster than expected, making me wonder "Is this right?" 😆😆
5.0
sunny75
100% enrolled
(25/07/27/Sun 19:50)
I've finished listening to all the network roadmap lectures. ^^; I learned a lot from each lecture. The phrase "always think about abnormal error states (LAN line disconnection)..." from this lecture really resonated with me. Thank you for creating such great lectures.
5.0
abba010327
62% enrolled
Thank you for always uploading good lectures.
What you will gain after the course
Windows-based TCP socket programming techniques
Techniques for building multi-threaded servers
IOCP-based high-performance server production technique
Application-level protocol design techniques
Want to become a high-level programmer? Challenge yourself with Windows Socket programming!
Building a high-performance C/C++ server, The end is always IOCP!
Learn how to develop TCP/IP socket programs in a Windows environment . This course covers everything from introductory theory on handling sockets to handling IOCPs (I/O Completion Ports) and application-level protocol design techniques.
High-performance servers are a must-know topic for C/C++ developers. And at the end of the spectrum, there's always IOCP. In fact, IOCP isn't a difficult topic! Anyone with a basic understanding of operating systems (especially virtual memory) and thread handling skills can learn it. In other words, a solid understanding of the underlying theory will make it easy to grasp.
Most books and lectures on socket programming focus on chat services. This process often leads to the development of some misconceptions . Unfortunately, these issues not only hinder understanding sockets but also hinder proper protocol design.
For socket programming We will inform you of the core solution.
1️⃣ TCP Socket Programming Basics
2️⃣ Application Protocol Design Techniques
3️⃣ Server development methods that take failure situations into account
4️⃣ How to develop an IOCP-based server
This course addresses these issues, including those encountered in the introductory socket programming phase, by providing solutions and learning paths. Above all, you'll use Wireshark to directly inspect packets and connect your understanding of various theories with code-level situations. Furthermore, you'll learn how to respond to failures, laying the foundation for developing high-performance servers.
Is this perhaps your concern?
This course is for C/C++ developers who need to develop servers that require high performance!
Case 1I want to do socket programming, but I'm stuck at the OSI 7 Layer.
You don't necessarily need to study the OSI 7-Layer model before studying socket programming. While it's certainly helpful to know, it's hardly mandatory. However, it's recommended that you begin after at least some study of the TCP protocol .
Case 2:I want to learn socket programming, but it's too difficult. Do I really need to learn system programming?
Anyone already familiar with systems programming can easily master socket programming by simply focusing on TCP. This underscores the importance of understanding systems programming. However, you don't need to understand all the complexities; simply understanding multithreading and synchronization methods will suffice for learning.
Case 3I know that the IOCP server is high-performance, but it is too difficult to study.
Many people find IOCP difficult. This is because the internal flow is not visible and they lack experience with asynchronous file input/output techniques utilizing callback structures. Since sockets are essentially files , a thorough understanding of asynchronous input/output techniques will make understanding IOCP easy. This course's curriculum is designed to address these challenges.
Case 4I am using a Client/Server architecture, but I am not sure if the applied protocol is appropriate and if it is correct to write the code like this.
Many people are intimidated by the term "protocol design." But once you understand it, it's not that complicated. This is especially true when you experience the send/receive structure at the code level .
Case 5:I want to become a game server developer. What should I study?
Game servers require high performance and high availability. A deep understanding of TCP/IP protocols , system programming skills , and protocol design capabilities are particularly crucial. Knowledge of high-speed input/output techniques like IOCP is also essential.
Learning content Check it out.
✅ You can write TCP/IP socket programs (echo, chat)
✅ You can create a high-performance C/C++ server based on ICOP.
✅ Learn techniques for designing application-level protocols and writing related code.
✅ I can analyze and respond to potential failures that may occur while operating the applications I wrote.
TCP Socket Programming Fundamentals
TCP echo server (multithreaded)
TCP chat server (multithreading, I/O multiplexing, event selection, IOCP)
File transmission/reception techniques and failure response
Application-level protocol design and code writing techniques
Asynchronous Input/Output Principles and IOCP
UDP socket programming techniques
Player Knowledge and Recommended Courses
To study this course, you need to understand the content covered in the course curriculum below.
💾 Please check before taking the class.
You will need Windows 10 or later for this tutorial. (Linux and macOS are not supported.)
This tutorial uses Visual Studio 2022 Community Edition , and requires a PC capable of running Visual Studio (including MFC and Windows SDK).
We provide PDF files of the charts used in the lecture and examples for each class.
Recommended for these people
Who is this course right for?
Anyone who wants to learn TCP/IP socket programming
Anyone who wants to know about Client/Server architecture protocol design techniques
For those who want to understand asynchronous file input/output
For those who want to know why asynchronous input/output can achieve high performance
Anyone who wants to develop a high-performance server based on IOCP
Anyone who wants to be a game server developer
Need to know before starting?
Contents corresponding to the lecture “C Programming: A Deep Review”
Contents corresponding to the lecture “Network Core Theory - Basics that you can memorize and finish”
I am the owner of the "NullNull Developer TV" channel and a developer who has been navigating the sea of IT technology for over 30 years. Nice to meet you. ^^
(25/07/27/Sun 19:50)
I've finished listening to all the network roadmap lectures. ^^; I learned a lot from each lecture. The phrase "always think about abnormal error states (LAN line disconnection)..." from this lecture really resonated with me. Thank you for creating such great lectures.
Following the previous System Programming-Basics, I moved into socket programming, and the lecture made clear what had felt abstract before - concepts like "Socket = File" and "when you go TCP, it becomes TCP Socket." I couldn't understand what these meant before.
Also, the 3-way handshake process and the use of listen, bind, accept functions that I couldn't grasp when just looking at theory - experiencing how coding follows the exact same sequence as shown in diagrams made me feel like I could become friends(?) with socket programming diagrams. It seems like this was a meaningful lecture in that regard.
=====
By this week, I'll complete a full review of the socket programming lectures / restudy the address book linked list, and then move into network programming. Since there's a lot of overlap with my previous studies in OS, TCP/IP, and system programming, understanding hasn't been too difficult, so progress is going faster than expected, making me wonder "Is this right?" 😆😆
It looks like you've achieved exactly the results you were hoping for. I believe that if you understand the TCP/IP protocol and properly study systems programming, socket programming will automatically fall into place in many ways. I'm giving you feedback that you're heading in a truly desirable direction. And as you'll discover when you look at network programming, you'll be able to understand for yourself why the somewhat abstract explanations about TCP/IP turned out that way. Thank you for the positive evaluation. :)