Что проверяет сервер в клиенте при подключении игрока?
Добрый день, подскажите, есть куча серверов Lineage, WoW, но по сути, чтобы подключиться к любому из них нужно просто в файле подключения указать ай пи сервера и не важно, какая версия игры у пользователя?
Ingernirated: Нет никакого "файла протокола". Есть описание протокола. Оно может быть общедоступным - тогда искать на сайте разработчика, или закрытым - тогда реверс-инжиниринг. И у меня жесткое дежавю. Вы хоть опишите чего вы хотите добиться
Как правило все эти проверки происходят "под капотом", на уровне протокола обмена данными и обычно пользователь узнает о них лишь тогда, когда клиент заваливает одну из проверок чтобы тот мог что-либо предпринять. То какие конкретно данные проверяются и в каком порядке зависит уже от конкретного сервера / протокола.
Серверу, по большому счету, все равно, что клиентская часть не сможет чего-то там отобразить на экране у пользователя, что появилось только в новой версии.
Версию сервера проверяет клиент.
А сервер проверяет только то, что клиент поддерживает актуальную версию протокола.
GavriKos: а как вы тогда хотите заменить протокол в чужой системе?????
протокол - это одна из специфических, заточенных под КОНКРЕТНУЮ задачу частей.
нет, я не спорю, это можно.
но тот кто способен подменять протокол - не задает таких вопросов.
в общем случае - не самая тривиальная задача.
ralaton121: Я не автор вопроса - просто прокомментировал капитанством ;-)
Написано
Saboteur
@saboteur_kiev Куратор тега Разработка игр
software engineer
Сервер у клиента может проверять все, что вздумается автору.
Но для начала, вам нужно понять как вообще работает интернет, что такое протокол и как происходит обмен данными. Особенно за пределами веб-страничек.
Версия не столь важна - ее можно подделать. Но подделать все остальные данные которыми обмениваются сервер и клиент непросто. Тем не менее количество написанных ботов показывает, что все возможно.
А если сервер с exe файлами, он на линуксе не запустится?
Написано
Saboteur
@saboteur_kiev Куратор тега Разработка игр
Нет конечно. Например
Для Lineage официальный сервер - под винду, и требует MS SQL сервер для работы.
Для Java-серверов - можно запускать где угодно, требует MYSQL для работы.
Собственно java-сервер это пример того, что протокол обмена данных между сервером и клиентом расшифровали, и создали свой сервер, который шлет клиенту все необходимые данные, чтобы клиент думал что он работает с честным сервером. При этом все равно есть неточности.