Μία εφαρμογή Client-Server βασίζεται στο μοντέλο πελάτη -εξυπηρετητή. Το μοντέλο πελάτη - εξυπηρετητή αποτελείται από δύο βασικά μέρη, τον εξυπηρετητή ο οποίος δέχεται αιτήματα εξυπηρέτησης από τους πελάτες που συνδέονται σε αυτόν και ο ρόλος του είναι να τα ικανοποιεί, και τους πελάτες οι οποίοι συνδέονται στον εξυπηρετητή προκειμένου να τους ικανοποιηθεί κάποιο αίτημα, να τους παρασχεθεί κάποια υπηρεσία. Στην πλειονότητα τους οι εξυπηρετητές ενεργοποιούνται και περιμένουν μέχρι να τους υποβληθεί κάποιο αίτημα υπηρεσίας από τους πελάτες. Για να λειτουργήσει μια εφαρμογή πελάτη - εξυπηρετητή είναι απαραίτητη η δημιουργία δύο βασικών κλάσεων. Μία για την πλευρά του εξυπηρετητή και μία για την πλευρά του πελάτη.