Połączenie sieciowe

Połączenie sieciowe
PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:339
0

Cześć, mam sobie grę w javie napisaną. Gra w karty. Jak do singla dorobić sieć lan na takiej zasadzie, że:

1 host odpala grę i wciska button host- gra się ładuje.
2 client odpala grę i klika button Client i łączy go z hostem->dane typu port/ip były by wpisywane albo zapisane już w kodzie.

W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:4 minuty
  • Postów:3612
0
PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:339
0

No dobra, ale jak to mam z logicznego puntu ułożyć? kiedy mam odpalać metodę rysującą okno dla klienta? co mam przesłać przez sieć?

W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:4 minuty
  • Postów:3612
0
Pabloss napisał(a):

No dobra, ale jak to mam z logicznego puntu ułożyć? kiedy mam odpalać metodę rysującą okno dla klienta? co mam przesłać przez sieć?

Odpowiedzi: kiedy chcesz, co chcesz.

Generalnie swoją wizję opisać musisz sam bo Ty ją znasz lepiej niż ja :)

Zakładam układ klient-host (tak jak są np. dawne gry po LAN zorganizowane - nie ma oddzielnego serwera, tylko dwóch graczy łączy się z sobą bezpośrednio). Obaj powinni mieć opcje "hostuj" i "połącz się", po wybraniu "połącz się" powinno zostać nawiązane połączenie z wklepanym adresem IP.
Protokół musisz napisać sam, najłatwiej będzie stworzyć jakieś serializowalne obiekty typu GameCommand (przesyłanie informacji o akcjach graczy) i GameStatus (przesyłanie informacji o stanie gry - czy ktoś wygrał, czy nie, czyja kolej itp.). Potem je serializujesz do String, String do ByteArray i przesyłasz przez socket do drugiego klienta.

Np.
0. Gracz 1 i Gracz 2 odpalają aplikację.

  1. Gracz 1 [Maszyna 1] - klika hostuj
  2. Gracz 2 [Maszyna 2] - klika "dołącz", wklepuje adres maszyny #1
  3. [Maszyna 1] - tworzy handler do połączenia z maszyną #2.
  4. [Maszyna 1] - rozsyła informacje o grze do gracza 1 i - przez socket - do maszyny 2 (i gracza 2)
  5. Gracz 1 wykonuje ruch, Maszyna 1 wysyła informację do gracza 2
  6. Gracz 1 czeka na ruch Gracza 2
  7. Gracz 2 wykonuje ruch itp.

Pętla rysująca nie powinna być zależna od wątków obsługujących ruch sieciowy.

edytowany 1x, ostatnio: wartek01
PA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:339
0

No tak, dokłądnie tak to ma wg mnie również działać. Tylko nie bardzo mam pomysł jak to zaimplementować. Mógłbyś podać jakiś pseudo kod?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.