Если
С++ \ WinAPI
Глейзер Дж., Мадхав С. - Многопользовательские игры.
Разработка сетевых приложений. - 2017
Глава 2 - Интернет
Глава 3 - Сокеты Беркли
остальное по желанию.
Плюсы:
Объяснение на пальцах без лишней мути.
Нет устаревших функций. С++, ООП (обертки из классов).
В третей главе есть упражнения как раз по Вашей теме.
spoiler
Вопросы для повторения
1. Назовите некоторые отличия POSIX-совместимых библиотек сокетов от ре-
ализации в Windows.
2. Какие два уровня TCP/IP отвечают за адресацию сокетов?
3. Объясните, как и почему сервер TCP создает уникальный сокет для соединения
с каждым клиентом.
4. Объясните, как связать сокет с портом и что это означает.
5. Добавьте поддержку адресов IPv6 в SocketAddress и SocketAddressFactory .
6. Добавьте возможность создания сокетов TCP в SocketUtils .
7. Реализуйте чат-сервер, использующий протокол TCP для соединения с един-
ственным узлом и передачи сообщений в обе стороны.
8. Добавьте поддержку нескольких клиентов в чат-сервер. Используйте неблоки-
рующие сокеты на стороне клиента и select на стороне сервера.
9. Объясните, как изменить максимальный размер окна приема TCP.
ссылки на актуальную литературу и исходники на гитхабе в самой книге
по исходникам, что бы не искать - то что нужно Вам лежит здесь
https://github.com/MultiplayerBook/MultiplayerBook...