2012-05-03 22 views
6

Tworzę wieloosobową grę na iPhone'a, korzystając z tutoriala dla wielu graczy jako szkieletu poniższego linku http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12.limit rozmiaru pakietu na iPhone'a?

Z architekturą, której używam (GameCentre peer to peer), jedno z urządzeń pełni rolę serwera. Mam pytanie, jakie jest ograniczenie rozmiaru pakietu? Średnio muszę wysłać 890 bajtów za jednym razem ...

+0

Możesz wysyłać dość duże pakiety, ale powinieneś wtedy zwracać uwagę na szybkość. Duży pakiet będzie trwał dłużej, gdy ważna jest szybka komunikacja w grze. Ogólnie rzecz biorąc, jeśli pakiety są zbyt duże w grze, prawdopodobnie możesz podzielić je na mniejsze pakiety, z których każdy ma swój własny podstawowy element danych. – wquist

+0

Cześć dzięki za odpowiedź, więc z definicji dużego pakietu jest pakiet 1k uważany za dość duży? – godzilla

+0

1k bajtów? Tak jak 1 kB? Jeśli wysyłasz 30 pakietów na sekundę, to jest to ~ 240 kb na dwa sposoby pod względem szybkości połączenia, więc to naprawdę zależy od grupy docelowej. Będzie się bardzo różnić w zależności od lokalnej, WAN, 3G itp. Dla mnie jest to dość duże. Jest to odpowiednik około 250 wartości zmiennoprzecinkowych lub ponad 100 pozycji XY, każda klatka. Upewnij się, że wszystko, co wysyłasz, jest niezbędne. Jeśli masz obliczenia lub coś w rodzaju logiki wysyłanej, spróbuj standaryzować swoje zachowanie i wyślij flagę o jednym bajcie, mówiąc "to się stało" i wykonaj obliczenia po stronie klienta. – wquist

Odpowiedz

1

Generalnie nie powinieneś polegać na rozmiarze pakietu sieciowego. Pakiety mogą być pofragmentowane (przez TCP/IP i ponownie złożone przez stos) lub dane są gromadzone w pakietach w oparciu o MTU parametrów wysyłania/odbierania.

+0

Dziękuję za odpowiedź, ale czy istnieje próg wielkości, który w przypadku przekroczenia danych nie zostanie odebrany na drugim końcu? – godzilla

+0

Niezupełnie. Twoje dane zostaną spakowane przez stos sieci i zrekonstruowane po drugiej stronie. Nie musisz nic robić. Jedynym ograniczeniem jest przepustowość, ponieważ telefony komórkowe mogą znajdować się w miejscu o złym odbiorze. Tylko upewnij się, że poprawnie obsługujesz błędy. – Zepplock

1

Per na Game Kit Programming Guide:

  • Limit wielkości nierzetelnych komunikatów do 1000 bajtów lub mniejszym rozmiarze.
  • Ogranicz rozmiar wiarygodnych wiadomości do 87 kilobajtów lub mniejszych.