@TheRevan

Как происходит клиент серверное взаимодействие на разных языках?

Интересует следующий вопрос:
Допустим есть клиент - программа написанная на C++, и есть сервер - написанный на java. Посредством чего сервер и клиент будут общаться? допустим возьмем пример игры...
Есть персонаж(на клиенте), который перемещается по координатам x, y. Как C++ будет отправлять данные на java сервер посредством метода какогонибудь и как C++ узнает ответ(в данном случае true или false) о возможности перемещения персонажа на заданную координату? Неужели посредством POST GET запросов? какие типы данных возможно таким образом передавать? или все можно передать форматом JSON или аналогией? Посоветуйте нормальную литературу на эту тему или видеоуроки
  • Вопрос задан
  • 844 просмотра
Решения вопроса 1
GavriKos
@GavriKos
То что вы пытаетесь сформулировать - называется "протокол взаимодействия". Тобишь правила, по которым общаются клиент и сервер. Он может быть как бинарным, так и текстовым (да, JSON). Протокол описывает, что, в каком формате и последовательности будет передано. Например - "если 3 байт пакета равен 10, то это запрос координат. Координаты передаются в ответном пакете в битах 3 и 4".
А про GET/POST - можно их, если скорость не критична и запросов мало. Можно (и в вашем примере нужно) - сокеты.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Nipheris
@Nipheris Куратор тега C++
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
Я бы сделал на сокетах
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Взаимодействие идет посредством TCP/IP. Http(POST GET) - это протокол над протоколом TCP, он содержит много не нужной информации для игры.
Вам нужно смотреть в сторону простых TCP подключений - сервер создает слушающий сокет для определенного порта, клиент к нему подключается - сервер видит подключение и вызывает обработчик нового подключения. Начинается обмен данными - чем проще бинарный формат тем меньше канал связи потребуется и "пинг клиента" будет ниже. Алгоритм реализации примерно одинаковый что для C++ что для Java.

начать нужно хотя бы с такой статьи https://habrahabr.ru/post/209144/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы