Pytanie dot. IP

0

No więc pisze jakiś tam program. Program będzie miał na oko 10-20 "klonów" na różnych komputerach które będą komunikować się przez sockety. Część z nich może mieć publiczne IP, część może nie mieć.

I tu jest pytanie, jeżeli chcę zrobić takie coś, żeby każden jeden komputer mógł się połączyć z jakimś tam innym, żeby nie było takiego bez pary :)
Wymyśliłem kilka wyjść
#Jakimś cudem dokładnie połowa ma publiczny IP, a druga połowa bez pub. IP się z nimi łączy (mało prawdopodobne)
#Łączenie się programów za pośrednictwem zewntrz. servera (wolałbym uniknąć, bo będzie wolniej działać).
#Tworzenie wirtualnej sieci (Wolałbym uniknąć hamachi, a sam nie umiem zrobić programu do vlan)
Ma ktoś inne pomysły?
Dodam że w każdej chwili mogą dojść inne komputery które też chciały by się podłączyć.

0

Mi takie coś przyszło:
Dla każdej gry tworzona jest nowa tabela w bazie danych (np.MySQL)
W tej tabeli mogą być np.takie pola:
1Gracz | 2Gracz | 1PozycjaX | 1PozycjaY | 1Punkty | 2PozycjaX | 2PozycjaY | 2Punkty
1Gracz -> nazwa pierwszego gracza
2Gracz -> nazwa drugiego gracza
1PozycjaX -> pozycja X pierwszego gracza
Analogicznie reszta.
Podczas zmiany pozycji jakiegoś gracza, jest ona także uaktualniana w bazie danych i pobierana np.10 razy na sekundę u drugiego, itd.
Ew.musiałaby być tabela Zaproszenia typu:
Aktualne | Przyjęte | Zaprasza | Zapraszany
Aktualne -> 0/1 czy ciągle aktualne
Przyjęte -> czy 'Zapraszany' przyjął i zaczęli grę (właśnie wtedy tworzona byłaby tabela omówiona na początku postu).
Zaprasza -> nazwa gracza, który zaprosił
Zapraszany -> nazwa graczy, który jest zapraszany

PS: Oczywiście to bezproblemowo zadziała wyłącznie dla dwóch graczy.
Dla trzech i więcej należałoby dodać więcej kolumn do tabel, itd.

0
Patryk27 napisał(a)

Tak się nie robi :)

Sobie to powiedz. Planujesz trzymać pozycje graczy uaktualniane prawdopodobnie parę razy na sekundę w... o zgrozo bazie danych czyli wykorzystywać ją praktycznie jak RAM (powodzenia)...

Patryk27 napisał(a)

PS: Oczywiście to bezproblemowo zadziała wyłącznie dla dwóch graczy.
Dla trzech i więcej należałoby dodać więcej kolumn do tabel, itd.

Do tego wykazałeś zupełny brak umiejętności projektowania tabel w bazie danych. FAIL!

0

Czemu chcesz uniknąć hamachi? Nic lepszego nie wymyślisz ani nic bardziej wydajnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0