5.4 Αποστολή μηνυμάτων μεταξύ συσκευών
[110]
προγραμματίζουμε δικτυακές εφαρμογές χρησιμοποιούμε τη συνάρτηση
htonl() πριν την αποστολή των byte.
Εικόνα 5.10: Διάταξη των byte στη μνήμη
Εφόσον αναλύσαμε την κατασκευή των πακέτων μηνυμάτων θα
δώσουμε ένα παράδειγμα κώδικα. Δημιουργούμε τη μέθοδο
clientReceivedPacket στην κλάση “Game”. Στη μέθοδο αυτή ελέγχουμε
το είδος του πακέτου που παραλαμβάνει ο πελάτης και αποφασίζουμε
πως θα το χειριστούμε.
Όταν το πακέτο είναι “Sign in request” αλλάζουμε την κατάσταση
του παιχνιδιού για τον πελάτη σε “Waiting for ready” και στέλνουμε στο
διακομιστή ένα πακέτο “Sign in response”. Το πακέτο αυτό είναι
μεγαλύτερο των δέκα byte γιατί περιέχει ωφέλιμο φορτίο με το όνομα
του χρήστη. Η μέθοδος sendPacketToServer είναι σχεδόν ίδια με τη
μέθοδο sendPacketToAllClients, με τη διαφορά ότι στέλνουμε το πακέτο
μόνο στο χρήστη με αναγνωριστικό _serverPeerID.
5.4.1 Διαχειρίζοντας τις απαντήσεις στο διακομιστή
Χρησιμοποιώντας το “GameKit” και κατά συνέπεια τα αντικείμενα
“GKSession” για μια δικτυακή εφαρμογή, ο διαχειριστής με τους πελάτες
μοιράζονται το μεγαλύτερο μέρος του κώδικα.