Pytanie dot. IP

Odpowiedz Nowy wątek
2011-07-21 21:08
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ć.


char mander; bool basaur;

Pozostało 580 znaków

2011-07-21 21:24
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.


edytowany 1x, ostatnio: Patryk27, 2011-07-21 21:24
A mi bardziej chodziło o połączenie dwóch graczy, bez względu na to czy ma pub. IP czy nie... a jeśli chodzi o MySQL to w delphi mi nie wyszło i poradziłem sobie tak, że wysyłałem zaptrania SQL przez Indy do skryptu PHP na stronie WWW, ale to trwało znacznie dłużej. - TomRiddle 2011-07-21 21:27
Tak się nie robi :) - Patryk27 2011-07-21 21:28
A co poradzisz? Mam bibliotekę libmysql.dll w folderze projectu, w Delphi/Lin, w Delphi/Bin, w Windows i w Windows/System32 a i tak mi wyskakuje komunikat że nie znaleziono :/ Pisałem na 4p, ale kogo by to obchodziło? - TomRiddle 2011-07-21 21:33
use FreeDAC Luck - Misiekd 2011-07-21 23:06

Pozostało 580 znaków

2011-07-22 02:09
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!


Women were the reason I became a monk - and, ah, the reason I switched back...
Twój komentarz bardziej mi się podobał %) - Misiekd 2011-07-22 02:57
Staram się być poprawny politycznie, tamto wyszło bardziej w twoim stylu :) - Demonical Monk 2011-07-22 02:58
na niektóre posty odpowiedzi polityczne nie działają... - Misiekd 2011-07-22 02:59
Czyli jaki z tego wniosek? - TomRiddle 2011-07-22 10:17
że się tramwajem nie ogolisz - Misiekd 2011-07-22 12:35
Polak Potrafi - TomRiddle 2011-07-22 12:44

Pozostało 580 znaków

2011-07-22 18:43
0

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

edytowany 1x, ostatnio: othello, 2011-07-22 18:44
Bo chciałbym żeby ktoś po prostu wszedł i grał, a nie zakładał nowe sieci. Ale jak nie ma innego wyjścia, to trudno. - TomRiddle 2011-07-24 12:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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