Я работаю над многопользовательской (не более 2 игроков) android игрой, в которой каждый по очереди. Устройства двух игроков должны сначала соединиться друг с другом, используя только Wi-Fi (одноранговый): одно будет хостом, а другое - клиентом. Я успешно установил соединение, следуя документации android, но в остальном я не уверен, верны ли мои рассуждения:
Я знаю, что одно устройство будет одновременно служить хостом и клиентом (а другое один клиент, конечно), и я создал эти два класса, которые используют сокеты для связи друг с другом и в своих собственных потоках. Приведенный ниже код является частью моего проекта, просто чтобы получить представление. Как только соединение установлено, эти два класса запускаются.
public class Server extends Thread {
ServerSocket server;
Socket socket;
run() {
socket = server.accept();
}
}
public class Client extends Thread {
Socket socket;
run() {
socket.connect(...);
}
}
Мне было интересно следующее: можно ли создать отдельный класс, который будет представлять мой игровой сервер (GameServer), размещенный на сервере хост-устройство с другим номером порта и служить промежуточным звеном между моим сервером и моим клиентом и связываться с ними двунаправленным способом (просто с помощью веб-сокета)?
сервер <=====> игровой сервер <=====> клиент