17
Το μοντέλο Το μοντέλο Client Client - - Server Server Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( εξυπηρετητή ( client client - - server server ). ). Η διεργασία - εξυπηρετητής αρχίζει να εκτελείται Η διεργασία - εξυπηρετητής αρχίζει να εκτελείται σε κάποιον υπολογιστή. Μετά την αρχικοποίησή της, σε κάποιον υπολογιστή. Μετά την αρχικοποίησή της, πέφτει σε “λήθαργο”, αναμένοντας μία διεργασία - πέφτει σε “λήθαργο”, αναμένοντας μία διεργασία - πελάτη να επικοινωνήσει μαζί της και να της πελάτη να επικοινωνήσει μαζί της και να της ζητήσει κάποια υπηρεσία. ζητήσει κάποια υπηρεσία. Μία διεργασία - πελάτης αρχίσει να εκτελείται, Μία διεργασία - πελάτης αρχίσει να εκτελείται, είτε στο ίδιο σύστημα, είτε σε κάποιο είτε στο ίδιο σύστημα, είτε σε κάποιο απομακρυσμένο, το οποίο συνδέεται με τον απομακρυσμένο, το οποίο συνδέεται με τον υπολογιστή στον οποίο “τρέχει” ο εξυπηρετητής μέσω υπολογιστή στον οποίο “τρέχει” ο εξυπηρετητής μέσω δικτύου. δικτύου.

Το μοντέλο Client - Server

Embed Size (px)

DESCRIPTION

Το μοντέλο Client - Server. Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( client - server ). - PowerPoint PPT Presentation

Citation preview

Page 1: Το μοντέλο  Client  -  Server

Το μοντέλο Το μοντέλο ClientClient - - Server Server

Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ((clientclient - - serverserver). ).

Η διεργασία - εξυπηρετητής αρχίζει να εκτελείται σε κάποιον Η διεργασία - εξυπηρετητής αρχίζει να εκτελείται σε κάποιον υπολογιστή. Μετά την αρχικοποίησή της, πέφτει σε υπολογιστή. Μετά την αρχικοποίησή της, πέφτει σε “λήθαργο”, αναμένοντας μία διεργασία - πελάτη να “λήθαργο”, αναμένοντας μία διεργασία - πελάτη να επικοινωνήσει μαζί της και να της ζητήσει κάποια υπηρεσία.επικοινωνήσει μαζί της και να της ζητήσει κάποια υπηρεσία.

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

Page 2: Το μοντέλο  Client  -  Server

Το μοντέλο Το μοντέλο ClientClient - - Server Server Η διεργασία πελάτης στέλνει μια αίτηση, μέσω του Η διεργασία πελάτης στέλνει μια αίτηση, μέσω του δικτύου, στον εξυπηρετητή, ζητώντας του κάποιου είδους δικτύου, στον εξυπηρετητή, ζητώντας του κάποιου είδους υπηρεσία (π.χ. μεταφορά αρχείου, απομακρυσμένη υπηρεσία (π.χ. μεταφορά αρχείου, απομακρυσμένη εκτύπωση, ανάγνωση και αποστολή εκτύπωση, ανάγνωση και αποστολή mailmail και άλλες). και άλλες).

Ταυτόχρονα με την εξυπηρέτηση κάποιου πελάτη, ο Ταυτόχρονα με την εξυπηρέτηση κάποιου πελάτη, ο serverserver έχει την δυνατότητα να δέχεται και αιτήσεις άλλων έχει την δυνατότητα να δέχεται και αιτήσεις άλλων πελατών προς εξυπηρέτηση. πελατών προς εξυπηρέτηση.

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

Ορίζουμε ως Ορίζουμε ως σύνδεσησύνδεση, τον επικοινωνιακό δίαυλο μεταξύ , τον επικοινωνιακό δίαυλο μεταξύ δύο διεργασιών. δύο διεργασιών.

Page 3: Το μοντέλο  Client  -  Server

SocketsSockets

Socket Socket είναι το ένα άκρο, από έναν επικοινωνιακό είναι το ένα άκρο, από έναν επικοινωνιακό δίαυλο διπλής κατεύθυνσης, μεταξύ δύο προγραμμάτων δίαυλο διπλής κατεύθυνσης, μεταξύ δύο προγραμμάτων που εκτελούνται στο δίκτυο. Περιλαμβάνει το που εκτελούνται στο δίκτυο. Περιλαμβάνει το πρωτόκολλοπρωτόκολλο, την , την διεύθυνσηδιεύθυνση και τον και τον αριθμό θύραςαριθμό θύρας του του άκρου.άκρου.

Κάθε πρόγραμμα διαβάζει από και γράφει σε ένα Κάθε πρόγραμμα διαβάζει από και γράφει σε ένα socketsocket, , με τρόπο παρόμοιο της εγγραφής και ανάγνωσης με τρόπο παρόμοιο της εγγραφής και ανάγνωσης αρχείων του αρχείων του file systemfile system. .

Υπάρχουν δύο είδη Υπάρχουν δύο είδη sockets: TCP - UDP sockets: TCP - UDP

Page 4: Το μοντέλο  Client  -  Server

TCP TCP SocketsSockets To TCPTo TCP ( (Transmission Control ProtocolTransmission Control Protocol) ) socketsocket είναι είναι υπηρεσία προσανατολισμένη στην σύνδεση (υπηρεσία προσανατολισμένη στην σύνδεση (connectionconnection--oriented serviceoriented service). ).

Κατά την αρχικοποίηση έχουμε τηνΚατά την αρχικοποίηση έχουμε την εγκαθίδρυση μιας εγκαθίδρυση μιας σύνδεσης μεταξύ δύο σύνδεσης μεταξύ δύο διεργασιώνδιεργασιών..

HH σύνδεση με σύνδεση με TCP socketTCP socket απαιτεί την ανταλλαγή τριών απαιτεί την ανταλλαγή τριών “πακέτων χειραψίας” (“πακέτων χειραψίας” (handshake packetshandshake packets) και είναι πιο ) και είναι πιο χρονοβόρα στην αρχικοποίησή της από την αντίστοιχη χρονοβόρα στην αρχικοποίησή της από την αντίστοιχη με με UDP datagramsUDP datagrams..

ΤΤα α TCP socketsTCP sockets εξασφαλίζουν μια αξιόπιστη μεταφορά εξασφαλίζουν μια αξιόπιστη μεταφορά της πληροφορίας : ότι αποστέλλεται από το ένα άκρο της πληροφορίας : ότι αποστέλλεται από το ένα άκρο είναι σίγουρο ότι θα φτάσει στο άλλο.είναι σίγουρο ότι θα φτάσει στο άλλο.

Page 5: Το μοντέλο  Client  -  Server

UDP UDP SocketsSockets

To UDPTo UDP ( (Unreliable Datagram ProtocolUnreliable Datagram Protocol ) ) socketsocket είναι μια είναι μια υπηρεσία χωρίς σύνδεση ( υπηρεσία χωρίς σύνδεση ( connectionless serviceconnectionless service ). ).

Κατά την αρχικοποίηση δεν έχουμε τηνΚατά την αρχικοποίηση δεν έχουμε την εγκαθίδρυση εγκαθίδρυση μιας σύνδεσης μεταξύ δύο μιας σύνδεσης μεταξύ δύο διεργασιώνδιεργασιών..

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

Οι προηγούμενες δύο διαφορές καθορίζουν τελικά και Οι προηγούμενες δύο διαφορές καθορίζουν τελικά και την χρήση των δύο αυτών ειδών.την χρήση των δύο αυτών ειδών.

Page 6: Το μοντέλο  Client  -  Server

Java.net packageJava.net package

Μηχανισμός / Κλάση Περιγραφή Socket TCP άκρο - πελάτης ServerSocket ΤCP άκρο - εξυπηρετητής DatagramSocket UDP άκρο ( client & server ) DatagramPacket UDP πακέτο ΙnetAddress Διεύθυνση Internet Protocol (

IP ) URL Uniform Resource Locator URLConnection Σύνδεση με αντικείμενο του

web.

Page 7: Το μοντέλο  Client  -  Server

Client - Server Client - Server με με TCPTCPO O πελάτης πελάτης ( EchoClient ( EchoClient παράδειγμαπαράδειγμα))

socketsocket()() - αρχικοποίηση και σύνδεση - αρχικοποίηση και σύνδεση στον στον serverserver

getInputStreamgetInputStream()() - σύνδεση του - σύνδεση του socket socket με τον με τον μηχανισμό εισόδου/εξόδου μηχανισμό εισόδου/εξόδου

getOutputStreamgetOutputStream()()

readread() και () και writewrite()() - ανάγνωση και εγγραφή στο - ανάγνωση και εγγραφή στο - - συνδεδεμένο με τοσυνδεδεμένο με το socket socket

streamstream

……………………………….... - ακολουθούν και άλλες - ακολουθούν και άλλες αναγνώσεις/εγγραφέςαναγνώσεις/εγγραφές

closeclose()() - κλείνει το - κλείνει το socketsocket και και απελευθερώνεται αντίστοιχοςαπελευθερώνεται αντίστοιχος πόρος του συστήματος.πόρος του συστήματος.

Page 8: Το μοντέλο  Client  -  Server

Client - Server Client - Server με με TCPTCPO O εξυπηρετητήςεξυπηρετητής (EchoServer(EchoServer παράδειγμα παράδειγμα))

ServerSServerSocket()ocket() - - αρχικοποίηση του αρχικοποίηση του listening listening socketsocket

acceptaccept()() - αναμονή και εντοπισμός - αναμονή και εντοπισμός καινούργιου πελάτηκαινούργιου πελάτη

new Threadnew Thread - δημιουργία καινούργιου - δημιουργία καινούργιου threadthread για την εξυπηρέτηση πελάτηγια την εξυπηρέτηση πελάτη

getInputStreamgetInputStream()() - το καινούργιο - το καινούργιο socket socket που που επιστρέφεται από την επιστρέφεται από την accept accept ((τύπου τύπου Socket) Socket) συνδέεται με συνδέεται με

τον τον μηχανισμό εισόδου/εξόδου μηχανισμό εισόδου/εξόδου

getOutputStreamgetOutputStream()()

Page 9: Το μοντέλο  Client  -  Server

Client - Server Client - Server με με TCPTCPO O εξυπηρετητήςεξυπηρετητής (EchoServer (EchoServer παράδειγμαπαράδειγμα)) - συνέχεια - συνέχεια

readread() και () και writewrite()() - ανάγνωση και - ανάγνωση και εεγγραφή στογγραφή στο σ συνδεδεμένο με υνδεδεμένο με τοτο socket socket - - streamstream

……………………………….... - ακολουθούν και άλλες - ακολουθούν και άλλες αναγνώσεις/εγγραφέςαναγνώσεις/εγγραφές

closeclose()() - κλείνει το - κλείνει το socketsocket ( όχι το ( όχι το listeninglistening ) και ) και

απελευθερώνεται οαπελευθερώνεται ο αντίστοιχος αντίστοιχος πόρος του συστήματοςπόρος του συστήματος

Page 10: Το μοντέλο  Client  -  Server

Περιγραφή και ορισμός των Περιγραφή και ορισμός των DatagramsDatagrams (1)(1)

ΣΣτα τα UDP DatagramsUDP Datagrams η επικοινωνία που η επικοινωνία που συνήθως αναπτύσεται είναι “συνήθως αναπτύσεται είναι “peerpeer--toto--peerpeer”, δηλ. ”, δηλ. “ίσος προς ίσον”.“ίσος προς ίσον”.

Δεν έχουμε πλήρη διάκριση των ρόλων μεταξύ Δεν έχουμε πλήρη διάκριση των ρόλων μεταξύ των δύο επικοινωνούντων διεργασιών των δύο επικοινωνούντων διεργασιών - - τα δύο τα δύο προγράμματα προγράμματα – – πελάτηπελάτης/ς/εξυπηρετητήεξυπηρετητήςς λειτουργούν με παρόμοια διαδικασία βημάτων.λειτουργούν με παρόμοια διαδικασία βημάτων.

ΣΣτα τα datagramsdatagrams, τα πακέτα ( , τα πακέτα ( packetspackets ) που ) που μετακινούνται μέσω του δικτύου μετακινούνται μέσω του δικτύου δεν δεν διακινούν διακινούν την πληροφορία αξιόπιστα και η λήψη της από την πληροφορία αξιόπιστα και η λήψη της από το άλλο άκρο το άλλο άκρο δεν δεν γίνεται με την ίδια σειρά με την γίνεται με την ίδια σειρά με την οποία απεστάλοποία απεστάλησανησαν

Page 11: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeClient/TimeServerTimeClient/TimeServer (1) (1) O TimeClientO TimeClient, κάνει ερώτηση σε απομακρυσμένο , κάνει ερώτηση σε απομακρυσμένο hosthost, , ζητώντας του μάθει την εκεί ώρα. ζητώντας του μάθει την εκεί ώρα.

Αντίστοιχα ο Αντίστοιχα ο TimeServerTimeServer παρέχει αυτήν την υπηρεσία, παρέχει αυτήν την υπηρεσία, καθώς εκτελείται συνέχεια στον απομακρυσμένο καθώς εκτελείται συνέχεια στον απομακρυσμένο hosthost. .

Για τον αριθμό θύρας της υπηρεσίας Για τον αριθμό θύρας της υπηρεσίας στον στον server server διαλέξαμε διαλέξαμε τον 8505 κατά τυχαίο τρόπο, αλλά μπορεί να χρησιμοποιηθεί τον 8505 κατά τυχαίο τρόπο, αλλά μπορεί να χρησιμοποιηθεί και οποιοσδήποτε άλλος διαθέσιμος.και οποιοσδήποτε άλλος διαθέσιμος.

Θα χρησιμοποιήσουμε τα αντικείμενα δύο κλάσεων : Θα χρησιμοποιήσουμε τα αντικείμενα δύο κλάσεων : ηη κλάση κλάση DatagramSocketDatagramSocket, που υλοποιεί την επικοινωνία , που υλοποιεί την επικοινωνία

με με UDP datagrams UDP datagrams ηη κλάση κλάση DatagramPacketDatagramPacket, που αποτελεί το καλούπι με το , που αποτελεί το καλούπι με το

οποίο θα φτιάχνουμε τα προς αποστολή πακέτα.οποίο θα φτιάχνουμε τα προς αποστολή πακέτα.

Page 12: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeClientTimeClient (1)(1)ΚΚατασκευάσουμε το αντικείμενο της διεύθυνσης του ατασκευάσουμε το αντικείμενο της διεύθυνσης του host host που που τρέχει ο τρέχει ο TimeServerTimeServer. .

Αυτή παρέχεται από τον χρήστη με την εντολή εκτέλεσης του Αυτή παρέχεται από τον χρήστη με την εντολή εκτέλεσης του προγράμματος από την γραμμή εντολών προγράμματος από την γραμμή εντολών

java TimeClientjava TimeClient 127.0.0.1 127.0.0.1

To To αντικείμενο της διεύθυνσης ανήκει στην κλάση αντικείμενο της διεύθυνσης ανήκει στην κλάση InetAddressInetAddress, , της οποίας χρησιμοποιούμε την μέθοδο της οποίας χρησιμοποιούμε την μέθοδο getByNamegetByName((StringString), ), για να το μετατρέψουμε από την αλφαριθμιτική μορφή που το για να το μετατρέψουμε από την αλφαριθμιτική μορφή που το λαμβάνουμε στον τύπο λαμβάνουμε στον τύπο InetAddressInetAddress : :

InetAddresshostAddress = InetAddress.getByName(args[0]);InetAddresshostAddress = InetAddress.getByName(args[0]);  

Page 13: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeClientTimeClient (2)(2)

Κατόπιν δημιουργούμε το Κατόπιν δημιουργούμε το datagram socketdatagram socket, μέσω του , μέσω του οποίου θα στείλουμε το πακέτο με την αίτηση και θα οποίου θα στείλουμε το πακέτο με την αίτηση και θα λάβουμε αυτό με την απάντηση. Ο παρακάτω κώδικας λάβουμε αυτό με την απάντηση. Ο παρακάτω κώδικας εκτελεί ακριβώς αυτό :εκτελεί ακριβώς αυτό :

DatagramSocket serversoc = new DatagramSocket();DatagramSocket serversoc = new DatagramSocket();

Ο κατασκευαστής που χρησιμοποιήσαμε, διαλέγει από Ο κατασκευαστής που χρησιμοποιήσαμε, διαλέγει από μόνος του κάποιο ελεύθερο μόνος του κάποιο ελεύθερο port port στο μηχάνημα που “τρέχει” στο μηχάνημα που “τρέχει” ο πελάτης, για να το συνδέσει με το ο πελάτης, για να το συνδέσει με το datagram socketdatagram socket. .

Να σημειώσουμε εδώ, ότι δεν χρειάζεται να συνδέσουμε το Να σημειώσουμε εδώ, ότι δεν χρειάζεται να συνδέσουμε το datagram socketdatagram socket με με streams streams εισόδου/εξόδου, αφού δεν εισόδου/εξόδου, αφού δεν έχουμε Ι/Ο σε κάποιο κανάλι, αλλά αποστολή και λήψη έχουμε Ι/Ο σε κάποιο κανάλι, αλλά αποστολή και λήψη μεμονωμένων πακέτων.μεμονωμένων πακέτων.

Page 14: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeClientTimeClient (3)(3)Ακολουθεί κατασκευή του πακέτου της αίτησης. Ανήκει στην Ακολουθεί κατασκευή του πακέτου της αίτησης. Ανήκει στην κλάση κλάση DatagramPacketDatagramPacket..

DatagramPacket packet;DatagramPacket packet;byte[] message = new byte[256];byte[] message = new byte[256];packet = new DatagramPacket(message, 256, hostaddress, packet = new DatagramPacket(message, 256, hostaddress,

port);port);Η αποστολή γίνεταιΗ αποστολή γίνεται, , πολύ απλάπολύ απλά, , καλώντας την μέθοδο καλώντας την μέθοδο send(DatagramPacket) send(DatagramPacket) του του datagram socket :datagram socket :

serversoc.send(packet);serversoc.send(packet);  

Στη συνέχεια έχουμε αναμονή για λήψη της απάντησης με Στη συνέχεια έχουμε αναμονή για λήψη της απάντησης με την μέθοδο την μέθοδο receivereceive((DatagramPacketDatagramPacket) του ) του datagram socketdatagram socket. .

Serversoc.receive(packet);Serversoc.receive(packet);

Page 15: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeClientTimeClient ((44))

Η Η receivereceive()() “μπλοκάρει” το νήμα απ’ το οποίο έχει κληθεί, “μπλοκάρει” το νήμα απ’ το οποίο έχει κληθεί, μέχρι να λάβει κάποιο μέχρι να λάβει κάποιο datagram datagram πακέτο στο πακέτο στο port port που έχει που έχει ανοίξει το ανοίξει το datagram socketdatagram socket. .

MMε την μέθοδο ε την μέθοδο getDatagetData()() της κλάσης της κλάσης DatagramPacketDatagramPacket, , λαμβάνουμε τον πίνακα από λαμβάνουμε τον πίνακα από bytes bytes με την χρήσιμη με την χρήσιμη πληροφορία, τον οποίο μετατρέπουμε σε πληροφορία, τον οποίο μετατρέπουμε σε String String για την για την εκτύπωση. εκτύπωση.

Οι μέθοδοι Οι μέθοδοι getInetAddressgetInetAddress()() και και getPortgetPort()() επιστρέφουν την επιστρέφουν την διεύθυνση και τον αριθμό θύρας αντίστοιχα, του αποστολέα διεύθυνση και τον αριθμό θύρας αντίστοιχα, του αποστολέα του πακέτου. του πακέτου.

Πριν το πρόγραμμα τερματιστεί, απελευθερώΠριν το πρόγραμμα τερματιστεί, απελευθερώννουμε ουμε με την με την close()close() το το DatagramSocketDatagramSocket().().

Page 16: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeServerTimeServer(1)(1)ΟΟ εξυπηρετητής κατασκευ εξυπηρετητής κατασκευάζειάζει έναένα πακέτο πακέτο λήψηςλήψης αιτήσεων αιτήσεων ((max 8KBytes)max 8KBytes)..

ΟΟ εξυπηρετητής εξυπηρετητής δημιουργείδημιουργεί το το datagram socketdatagram socket, για την λήψη , για την λήψη των πακέτωντων πακέτων..

OO κατασκευαστής του αντικειμένου κατασκευαστής του αντικειμένου DatagramSocketDatagramSocket δέχεται δέχεται ωςως portport το 8505, στο οποίο το 8505, στο οποίο θα θα “ακούει”, για νέες συνδέσεις. “ακούει”, για νέες συνδέσεις.

Επειδή Επειδή η παρεχόμενη υπηρεσία απαιτεί μικρής διάρκειας η παρεχόμενη υπηρεσία απαιτεί μικρής διάρκειας εξυπηρέτηση, δεν είναι απαραίτητο να δημιουργεί για κάθε εξυπηρέτηση, δεν είναι απαραίτητο να δημιουργεί για κάθε αίτηση αίτηση πελάτη και πελάτη και νέο νέο threadthread..

Στη συνέχεια έχουμε αναμονή για λήψη της Στη συνέχεια έχουμε αναμονή για λήψη της αίτησης πελάτηαίτησης πελάτη με με την μέθοδο την μέθοδο receivereceive((DatagramPacketDatagramPacket) του ) του datagram socketdatagram socket. .

Serversoc.receive(packet);Serversoc.receive(packet);

Page 17: Το μοντέλο  Client  -  Server

Παράδειγμα Παράδειγμα TimeServerTimeServer(2)(2)Οι μέθοδοι Οι μέθοδοι getInetAddressgetInetAddress()() και και getPortgetPort()() επιστρέφουν την επιστρέφουν την διεύθυνση και τον αριθμό θύρας αντίστοιχα, του αποστολέα διεύθυνση και τον αριθμό θύρας αντίστοιχα, του αποστολέα του πακέτουτου πακέτου αίτησης του πελάτη αίτησης του πελάτη..

Ακολουθεί κατασκευή του πακέτου Ακολουθεί κατασκευή του πακέτου που θα σταλεί στον που θα σταλεί στον πελάτηπελάτη και θα περιέχει:και θα περιέχει:

το το String String με την τοπική ώρα του εξυπηρετητήμε την τοπική ώρα του εξυπηρετητή

το μήκος του το μήκος του StringString

τη διεύθυνση και το τη διεύθυνση και το port port του πελάτητου πελάτη..

Η αποστολή γίνεταιΗ αποστολή γίνεται, , πολύ απλάπολύ απλά, , καλώντας την μέθοδο καλώντας την μέθοδο send(DatagramPacket) send(DatagramPacket) του του datagram socket :datagram socket :