Próbuję stworzyć prostą grę multiplayer, niech to będzie nawet kółko i krzyżyk, czy cokolwiek innego. Zakładam na początek, że będzie to tylko rozgrywka między dwoma komputerami, żeby uprościć sprawę.
O ile łatwo jest napisać jakąś aplikację, gdzie komunikacja klient-serwer odbywa się w formie tekstowej (np czat, gdzie można sobie w pętli wrzucić po prostu warunek odczytujący dane od użytkownika), tak nie mogę sobie wyobrazić architektury dla takiej prostej gry.
Powiedzmy, że mam klasy:
LogikaGry
PanelGry extends JPanel implements MouseListener
JFrame z PanelemGry
No i niech to na razie będzie to kółko i krzyżyk (no i swing). W PaneluGry mam 9 pól po kliknięciu na któreś wywołuję mousePressed, tam odpowiednio modyfikuję obiekt LogikaGry.
Jak rozumiem wypadałoby zrobić dodatkowo dwie klasy np:
Server
Client
które zawierają odpowiednio ServerSocket oraz Socket służące do komunikacji (jeden z klientów ma możliwość założenia gry).
Zasadnicze pytanie: gdzie i w jaki sposób odbierać/wysyłać dane generowane przez użytkownika? Chyba bez sensu byłoby otwieranie nowego połączenia do serwera za każdym razem, gdy drugi użytkownik wygenerował jakieś zdarzenie?
Za wszelkie sugestie z góry dzięki.