background image

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” για μια δικτυακή εφαρμογή, ο διαχειριστής με τους πελάτες 
μοιράζονται το μεγαλύτερο μέρος του κώδικα.