1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoserver και echoclient – Κώδικας εφαρμογών σε C Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 1 /* Αρχείο.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κεφάλαιο Τμηματικός προγραμματισμός
Advertisements

Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
1 Κλήση Απομακρυσμένων Διεργασιών (Remote Procedure Call - RPC) Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Ειδικά Θέματα Κώδικες Ιστορικά - Εισαγωγή Αρχική σελίδα 16/8/2014 WinSock σε C Επιμέλεια παρουσίασης : Ζδράγκας Σωτήρης Κονταξής Αναστάσιος Ντακούλας.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
Message Passing Interface (MPI)
Τύποι πραγματικών αριθμών
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Αγγίσταλης Κωνσταντίνος Α.Μ 739
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
Κεφάλαιο 11.2 Sockets.
Ολυμπιάδα Πληροφορικής
1 Ολυμπιάδα Πληροφορικής Μάθημα 5. 2 Στόχοι μαθήματος Πίνακες 2 διαστάσεων.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
ΘΠ06 - Μεταγλωττιστές Εισαγωγή στον Bison Φροντιστήριο - 23/03/2010.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
University of Cyprus Department of Computer Science Presenter : Yiannos Mylonas EPL475: Advanced Networks TCP/IP Socket Programming in C.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Streams Streams: κανάλια ροής δεδομένων Κανάλια εισόδου: ανάγνωση δεδομένων Κανάλια εξόδου: αποστολή δεδομένων Συνήθεις πηγές και προορισμοί δεδομένων:
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
7-1 ΜΑΘΗΜΑ 7 ο Περισσότερα για Κυκλικές και Διπλά Διασυνδεόμενες Λίστες, Συναρτήσεις Βιβλιοθήκης, Διαχείριση Αρχείων.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αλφαριθμητικά (Strings)
Προγραμματισμός Συναρτήσεις. Προγραμματισμός Μια συνάρτηση ορίζεται δίνοντας (α) τον τύπο του αποτελέσματος που.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ζητήματα Σχεδίασης Λογισμικού Πελάτη 1.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ). 2 Εξοικείωση με πρωτόκολλο TCP Connection Oriented Αξιοπιστία στην παράδοση Σειρά Καθυστερήσεις Χαρακτηριστικά.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 4: Επαναληπτικές δομές. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής. Τμήμα Μηχανικών.
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ 1 Εισαγωγή στη γλώσσα Προγραμματισμού C ΠΙΝΑΚΕΣ (arrays)
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Δείκτες Προγραμματισμός Ι
Εφαρμογές Υπολογιστών
Ενισχυτική διδασκαλία
ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ Η εντολή if if ( παράσταση) εντολή επόμενη εντολή.
Κεφάλαιο 7 Διαδικτύωση-Internet
for (παράσταση_1; παράσταση_2; παράσταση_3)
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
Άσκηση 1: Μετατροπή Θερμοκρασίας
Ενότητα 9: Δείκτες και Δυναμική Διαχείριση Μνήμης.
Processes.
Προγραμματισμός ΗΥ Ενότητα 12: Αρχεία Δομών. Διδάσκων: Ηλίας Κ Σάββας,
ΑΣΚΗΣΕΙΣ.
Μεταγράφημα παρουσίασης:

1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoserver και echoclient – Κώδικας εφαρμογών σε C Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 1 /* Αρχείο : echoserver.c * Program : echoserver * * Περιμένει για μια σύνδεση από μια * echoclient εφαρμογή και τα * δεδομένα, * που θα σταλούν για αντήχηση * * Χρήση : echoserver * (appnum: το port όπου αναμένει την * αίτηση από την εφαρμογή πελάτης) */ #include #define BUFFSIZE256 /* Αρχείο : echoclient.c */ * Program : echoclient * * Επικοινωνεί με την echoserver εφαρμογή, * στέλνει την είσοδο του χρήστη και * εμφανίζει την απάντηση του server * Χρήση : echoclient [appnum] * (compname : το όνομα ή η ΙΡ του Η/Υ στο * δίκτυο, στον οποίο τρέχει η εφαρμογή * εξυπηρέτης). Αν δεν δοθεί appnum, * χρησιμοποιείτε το stantard prort * αντήχησης (echo), to 7 */ #include #define BUFFSIZE256 #define INPUT_PROMPT "Input > " #define RECEIVED_PROMPT"Received> “ int readln(char *, int);

1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoserver – Κώδικας εφαρμογής σε C Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 2 int main(int argc, char *argv[]) { /* δηλώσεις τοπικών μεταβλητών*/ connectionconn; intlen; charbuff[BUFFSIZE]; /* έλεγχος ορθότητας παραμέτρων*/ if (argc != 2) { (void) fprintf(stderr, "usage: %s \n", argv[0]); exit(1); } /* αναμονή σύνδεσης από έναν echo client */ conn = await_contact((appnum) atoi(argv[1])); if (conn < 0) exit(1); /* επανάληψη, αντηχεί όλα τα δεδομένα που παραλαμβάνονται * μέχρι να σταλεί end of file */ while((len = recv(conn, buff, BUFFSIZE, 0)) > 0) (void) send(conn, buff, len, 0); send_eof(conn); return 0; }

1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoclient – Κώδικας εφαρμογής σε C (1 ο μέρος) Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 3 int main(int argc, char *argv[]) { /* δηλώσεις τοπικών μεταβλητών*/ computercomp; appnumapp; connectionconn; charbuff[BUFFSIZE]; intexpect, received, len; /* έλεγχος ορθότητας παραμέτρων*/ if (argc 3) { (void) fprintf(stderr, "usage: %s [appnum]\n“, argv[0]); exit(1);} /* μετατροπή των παραμέτρων συμβόλων σε δυαδικούς αριθμούς*/ comp = cname_to_comp(argv[1]); if (comp == -1)exit(1); if (argc == 3)app = (appnum) atoi(argv[2]); elseif ((app = appname_to_appnum("echo")) == -1)exit(1); /* εγκαθίδρυση σύνδεσης με τον echo server*/ conn = make_contact(comp, app); if (conn < 0) exit(1); (void) printf(INPUT_PROMPT); (void) fflush(stdout);

1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoclient – Κώδικας εφαρμογής σε C (2 ο μέρος) Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 4 /* επανάληψη: διαβάζει τα δεδομένα του χρήστη, τα στέλνει στον server, * δέχεται την απάντηση και την εμφανίζει στην οθόνη για τον χρήστη/* while((len = readln(buff, BUFFSIZE)) > 0) { /* αποστολή στον echoserver */ (void) send(conn, buff, len, 0); (void) printf(RECEIVED_PROMPT); (void) fflush(stdout); /* αποδοχή και εμφάνιση του ίδιου αριθμού bytes από τον echoserver */ expect = len; for (received = 0; received < expect;) { len = recv(conn, buff, (expect - received) < BUFFSIZE ? (expect - received) : BUFFSIZE, 0); if (len < 0) { send_eof(conn); return 1; } (void) write(STDOUT_FILENO, buff, len);received += len;} (void) printf("\n"); (void) printf(INPUT_PROMPT); (void) fflush(stdout);} /* τελειώνει η επανάληψη όταν φθάσει ένα EOF */ (void) send_eof(conn); (void) printf("\n"); return 0; }

1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server το υποπρόγραμμα readln – Κώδικας σε C Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 5 /* Αρχείο : readln.c – Υποπρόγραμμα : readln * Διαβάζει από την είσοδο μέχρι να βρει τέλος γραμμής (/n), EOF ή γεμάτο τον buffer * Επιστρέφει το μήκος των δεδομένων (πλήθος bytes). */ #include int readln(char *buff, int buffsz) { char*bp = buff, c; intn; while (bp - buff 0) { if (*bp++ == '\n‘) return (bp - buff); } if (n < 0) return -1; if (bp - buff == buffsz) while (read(STDIN_FILENO, &c, 1) > 0 && c != '\n'); return (bp - buff); }