Техническое задание: Разработка TCP-сервера для эмуляции игрового клиента
Цель проекта
Создать простой TCP-сервер для приёма и анализа подключения от специфического игрового клиента (версия 2.074). Сервер должен подтверждать соединение, позволяя клиенту успешно подключиться к локальному адресу.
Этапы работ
1. Анализ и исследование
- Изучить конфигурационные файлы клиента (hostlistdat, clientinidat) для определения IP-адреса, порта и параметров подключения по умолчанию.
- При наличии возможности, запустить клиент с перехватом сетевого трафика (например, с помощью Wireshark) для анализа запросов к оригинальному серверу.
- Определить начальные байты (заголовок/хендшейк), которые клиент отправляет при установке соединения.
2. Разработка сервера
- Написать TCP-сервер на одном из языков: C++ (предпочтительно), C# или Python.
- Сервер должен прослушивать порт (предположительно 2106, либо уточнённый в ходе анализа).
- Принимать входящее подключение от клиента.
- Считывать первые N байт от клиента и выводить их в консоль в шестнадцатеричном формате (HEX).
- Отправлять клиенту минимальный ответный пакет (достаточно 1-2 байт) для подтверждения соединения.
- Корректно закрывать соединение после обмена.
3. Тестирование
- Настроить игрового клиента на подключение к адресу 127.0.0.1 (localhost).
- Запустить разработанный сервер и клиент.
- Убедиться, что клиент успешно обнаруживает сервер и не выдаёт ошибку "Не удалось подключиться".
- Зафиксировать и проверить лог обмена данными между клиентом и сервером.
Технические требования
- Язык программирования: C++ (в приоритете), C# или Python.
- Целевая ОС: Windows 10/11.
- Архитектура: Сервер должен быть максимально простым, без избыточной функциональности.
- Логирование: Обязателен вывод первых принятых байт в HEX-формате для анализа протокола.
Критерии приемки
- Игровой клиент подключается к локальному серверу на 127.0.0.1.
- Сервер отображает в консоли как минимум 1 байт полученных от клиента данных.
- Клиент не отображает критическую ошибку о невозможности подключения.
- Предоставлен полный исходный код сервера.
- Приложена краткая инструкция по запуску сервера и настройке клиента.