Client-server conncection through socket

Client-server Συνδεση Μεσω Socket

Θεματολογία
Ενδοεπικοινωνία, TCP, Socket, Pipe

Γλώσσες Προγραμματισμού
C++

Αποτελεί εργασία στα πλαίσια του μαθήματος “Αρχιτεκτονική Υπολογιστών ΙΙ”. Ζητούμενο είναι να πραγματοποιηθεί μια ενδοεπικοινωνία μεταξύ server-client ώστε να ανταλλάσσουν πακέτα μέσω TCP προτοκόλλου. Για να λειτουργήσει αυτή η επικοινωνία θα κάνουμε χρήση της τεχνολογίας socket. Πρόκειτε για ένα παιχνίδι στο οποίο ο client πρέπει να μαντέψει τον αριθμό από το 1 έως 3 που παράγει τυχαία ο server. Ο server συγκρατεί τον αριθμό της παρτίδας και το τρέχον σκορ.

Το αρχείο “prsref.c” είναι ο server και το αρχείο “prs.c” είναι ο client.

Ο Server καλείτε πρώτος με ./prsref αφου εχει γινει το compile

  • Ν: παρτιδες
  • Port: είναι η θύρα στην οποία πρέπει να συνδεθεί o client
  • Ο server έχει μια διεργασία-παιδι που συνδέεται μέσω pipe και αυτό που κάνει είναι να παράγει έναν τυχαίο αριθμό από 1 εως 3
  • Συγκρίνει το τυχαίο αποτέλεσμα με την εισαγωγή που την κάνει read απο τον client και μετρά το score κάθε φορά
  • Τα μηνύματα των αποτελεσμάτων τα γράφει ο server και τα κανει write-response στον client

Ο Client καλείτε δεύτερος με ./prs αφού γίνει το compile o Hostname: π.χ localhost.

  • Ο client εισάγει έναν αριθμό από το 1 εως το 3 και στη συνέχεια το κανει write στον server
  • Εν συνεχεία, παίρνει το response(τρέχον παρτιδα, σκορ) από τον server

Η σύνδεση server-client γίνεται με τις standard συναρτήσεις listen(), bind(), connect(), accept() αφου έχουν δημιουργηθεί τα socket().