background image

5.2 Δημιουργία της διεπαφής διακομιστή-πελάτη 

[99] 

 

 

Εικόνα 5.3: Διάγραμμα καταστάσεων πελάτη 

 
Συνολικά  δημιουργούμε  τέσσερις  καταστάσεις.  Ξεκινώντας  ο 

χρήστης  τον  “JoinViewController”,  καλείται  η  κατάσταση  “Αδράνεια” 
κατά  την  οποία  περιμένει  χωρίς  να  κάνει  τίποτα.  Έπειτα  αυτόματα 
μπαίνει  στην  κατάσταση  “Έλεγχος  για  διακομιστές”.  Όταν  ο  χρήστης 
αποφασίσει να συνδεθεί σε ένα συγκεκριμένο διακομιστή, μπαίνει στην 
κατάσταση “Σύνδεση στο διακομιστή”, όπου προσπαθεί να συνδεθεί στο 
διακομιστή  και  τέλος  μπαίνει  στην  κατάσταση  “Συνδεμένος”  μόλις 
εδραιωθεί  η  σύνδεση.  Αν  οποιαδήποτε  στιγμή  κατά  τις  δύο  τελευταίες 
καταστάσεις ο διακομιστής απορρίψει τη σύνδεση, ο πελάτης επιστρέφει 
στην αρχική κατάσταση. 

Η κλάση που διαχειρίζεται τους πελάτες συμπεριφέρεται διαφορετικά 

ανάλογα με την κατάσταση που εκτελεί. Όταν βρίσκεται στην κατάσταση 
“Έλεγχος  για  διακομιστές”,  θα  προσθέτει  και  θα  αφαιρεί  ονόματα 
διακομιστών στο πίνακα, ενώ όταν βρίσκεται στην κατάσταση “Σύνδεση 
στο διακομιστή” ή “Συνδεμένος” όχι. 

Ξεκαθαρίζοντας  λοιπόν  τις  καταστάσεις  του  πελάτη,  συνεχίζουμε 

δημιουργώντας  στην  κλάση  τύπου 
“NSObject”  τη  μηχανή  καταστάσεων 
η  οποία  ορίζεται  αριθμητικά.  Τέλος 
για να ξεκινήσουμε τις συνδέσεις από 
τον  πελάτη  το  “Gamekit.framework” 
μας  παρέχει  τη  μέθοδο  peerdid 
ChangeState τύπου “void” η οποία διαχειρίζεται τις καταστάσεις.