background image

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

[101] 

 

 

Εικόνα 5.5: Μηχανή καταστάσεων διακομιστή 

 
Η μηχανή καταστάσεων του διακομιστή σε σχέση με τον πελάτη έχει 

μόνο 

τρείς 

καταστάσεις. 

Ξεκινώντας 

ο 

χρήστης 

τον 

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

Όπως  και  στην  περίπτωση  του 

πελάτη  έτσι  και  στο  διακομιστή, 
δημιουργούμε  στην  κλάση  τύπου 
“NSObject”  τη  μηχανή  κατά-
στάσεων 

η 

οποία 

ορίζεται 

αριθμητικά.  Τέλος,  για  να  ξεκινήσουμε  τις  συνδέσεις  στο  διακομιστή 
χρησιμοποιούμε  τη  μέθοδο  peerdidChangeState  τύπου  “void”  η  οποία 
διαχειρίζεται τις καταστάσεις. 

Για 

να 

εδραιωθεί 

η 

σύνδεση 

στο 

διακομιστή 

το 

“Gamekit.framework”  μας  παρέχει  τη  μέθοδο  acceptConnection 
FromPeer, η οποία όταν καλείται ελέγχει αν η κατάσταση στο διακομιστή 
είναι “Αποδοχή συνδέσεων”. Επίσης η μέθοδος καλείται κάθε φορά που 
έχουμε φτάσει το μέγιστο αριθμό συνδέσεων πελατών που έχουμε ορίσει 
στους τρεις όπως φαίνεται παρακάτω: