У Вас крайне простая игра крестики-нолики. Получается для сетевой игры нужно передавать следующее:
- Событие новой игры ; //Идентификатор пакета 1
- Событие установки крестика\нолика(int "x" , "y", и к примеру булевой тип isCircle)//Идентификатор пакета 2
- Событие победы. //Идентификатор пакета 3
- Событие ошибки(неверный ход) //Идентификатор пакета 4
Т.е. всего 4 типа данных.
Сетевой пакет можно представить следующим текстовым видом:
"число_идентификатор_типа_пакета;опциональные данные;опциональные данные"
; - делитель(delimiter строки)
Серверная сторона порт=7777:
ServerSocket ss = new ServerSocket(7777); //создали сервер
Socket socket = ss.accept();//Ждем клиента
//Сюда попадаем только когда подключился клиента
DataInputStream in = new DataInputStream(socket.getInputStream(); //Получаем поток ввода
DataOutputStream out = new DataOutputStream(socket.getOutputStream()); //Получаем поток вывода
String line = null;
while(true) {
line = in.readUTF(); // Тут ждем и получаем строку от клиента
String[] data = line.split(";"); //Разделяем полученную строку в массив строк
if(data[0].equals("1")){
//Сбрасываем уровень начинаем новую игру}
if(data[0].equals("2")){
//Ставим крестик\нолик по координатам
int x =data[1]; int y=data[2];boolean isCircle=data[3] //Не забудь типы привести, ну там Integer.parse(data[номер])
//Ну возможно отправить ответ клиенту
out.writeUTF(line); // шлем его же строку обратно чтобы клиент у себя отрисовал фигуру или пакет с ошибкой
out.flush(); // заканчиваем передачу в поток.
}
....
}
У клиента:
Socket socket = new Socket(InetAddress.getByName("IP сервера"), 7777); //создаем сокет
DataInputStream in = new DataInputStream(socket.getInputStream(); //Получаем поток ввода
DataOutputStream out = new DataOutputStream(socket.getOutputStream()); //Получаем поток вывода
String line = null;
while(true) {
... тут все аналогично серверу только с правками для клиента
}
Если хочется абстракции то заверни псевдокод выше в свой класс.
Spring вообще не для этих целей служит, в данной задаче это всеравно что забивать гвозди микроскопом.
Для вашей задачи сокеты это какраз то что и нужно изза того что все крайне просто и на глазах Проблем с сокетами тоже никаких быть не может.