Socket API (σε γλώσσα C) Σύντομη Εισαγωγή Παναγιώτης Φουληράς.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

The EDONKEY protocol Ιωάννης Ζιαγκλιαβός Α.Μ.123 Παναγιώτης Κατσίκος Α.Μ.124 Ευφροσύνη Κουρή Α.Μ. 138.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Ιστορία του Ιντερνετ.
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΙΝΗΣΗ ΑΓΑΘΩΝ & ΚΡΥΠΤΟΓΡΑΦΙΑ ΑΘΑΝΑΣΙΟΣ ΒΑΣΙΛΟΠΟΥΛΟΣ - ΓΟΥΤΑΣ ΔΗΜΗΤΡΙΟΣ PeLAB - Τμ. Η.Υ.Σ. - Τ.Ε.Ι. ΠΕΙΡΑΙΑ : Μάρτιος 1998.
Slide 1 Δίκτυα Τηλεπικοινωνιών ENOTHTA 7 η ΔΙΑΚΙΝΗΣΗ ΤΗΛΕΦΩΝΙΚΩΝ ΚΛΗΣΕΩΝ (ΜΕΡΟΣ Α’) 1. ΘΕΩΡΙΑ ΤΗΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΗΣ ΚΙΝΗΣΗΣ  Εκτός από τις τερματικές.
1 Κλήση Απομακρυσμένων Διεργασιών (Remote Procedure Call - RPC) Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
© ENERANET IT SYSTEMS    Tel: Προστασία από κλοπή δεδομένων.
Εισαγωγή στους Η/Υ Πίνακες.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Ειδικά Θέματα Κώδικες Ιστορικά - Εισαγωγή Αρχική σελίδα 16/8/2014 WinSock σε C Επιμέλεια παρουσίασης : Ζδράγκας Σωτήρης Κονταξής Αναστάσιος Ντακούλας.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Message Passing Interface (MPI)
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Ενότητα Β: Εισαγωγή στο Διαδίκτυο Κουμπή Βασιλάντα, Ph.D, MSc.
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΜΟΝΤΕΛΟ ΕΞΥΠΗΡΕΤΟΥΜΕΝΟΥ – ΕΞΥΠΗΡΕΤΗΤΗ ( CLIENT – SERVER )
ΤCP/IP Τι είναι; Σύντομο Ιστορικό
Κεφάλαιο 11.2 Sockets.
Υπηρεσίες δικτύων επικοινωνίας
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1.
Δίκτυα Ι Βπ - 2ο ΕΠΑΛ ΝΕΑΣ ΣΜΥΡΝΗΣ 2011.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Κατανεμημένα Συστήματα με Java Ενότητα # 8: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
National Technical University of AthensΤεχνολογίες Διαδικτύου Σύνοψη 1Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή 1.2 Πρωτόκολλα TCP/IP Διαστρωμάτωση.
Κεφ. 1 (Θ) & Κεφ. 9 (Ε): Μοντέλο επικοινωνίας δεδομένων
Δίκτυα Ηλεκτρονικών Υπολογιστών
HY-335 : Δίκτυα Υπολογιστών DHCP Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο
Τεχνολογία 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.
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
Πρωτόκολλο IP.
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 4: Ανάλυση Δικτυακής Κίνησης – Πρωτοκόλλων - Υπηρεσιών Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων (NETMODE)
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ζητήματα Σχεδίασης Λογισμικού Πελάτη 1.
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών 1.
1 ο Εργαστήριο: Κατασκευή Εφαρμογών Client-Server echoserver και echoclient – Κώδικας εφαρμογών σε C Μπαλόμπας Παναγιώτης 8ο ΕΠΑΛ Θεσσαλονίκης 1 /* Αρχείο.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ). 2 Εξοικείωση με πρωτόκολλο TCP Connection Oriented Αξιοπιστία στην παράδοση Σειρά Καθυστερήσεις Χαρακτηριστικά.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.3 Πρωτόκολλο TCP.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.5 Πρωτόκολλο ΙΡ (Internet Protocol)
User Datagram Protocol (UDP)
Κεφάλαιο 4. Επίπεδο μεταφοράς
Κεφάλαιο 10: Υπηρεσίες και εφαρμογές Διαδικτύου
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα
Δίκτυα Επικοινωνιών Ενότητα # 6: Επίπεδο Μεταφοράς TCP/UDP
TCP/IP.
Κεφάλαιο 7 Διαδικτύωση-Internet
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
ΥΠΗΡΕΣΙΕΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ 10.1 Υπηρεσίες Διαδικτύου
Κεφάλαιο 7 Διαδικτύωση- Internet
Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών
Κεφάλαιο 7: Διαδικτύωση-Internet
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Ειδικά Θέματα σε Κινητά και Ασύρματα Δίκτυα: 1η εργαστηριακή άσκηση
Το αυτοδύναμο πακέτο και η δομή του
Κεφάλαιο 7:Διαδικτύωση-Internet
Κεφάλαιο 7: Διαδικτύωση-Internet
Κεφάλαιο 4. Επίπεδο μεταφοράς
Θέμα: Διακομιστές Διαμεσολάβησης
Μεταγράφημα παρουσίασης:

Socket API (σε γλώσσα C) Σύντομη Εισαγωγή Παναγιώτης Φουληράς

2 Εισαγωγή Κάθε Η/Υ έχει μοναδική ταυτότητα στο Διαδίκτυο (IP αριθμός) –IP Πρωτόκολλο Κάθε Διεργασία σε Η/Υ διακρίνεται από τον αριθμό θύρας (port number) στο Πρωτόκολλο Μεταφοράς (Transport) –TCP, UDP

Παναγιώτης Φουληράς3 Υπηρεσίες, Εξυπηρέτες, Πελάτες Μοντέλο Πελάτη-Εξυπηρέτη (Client-Server) TCP/UDP IP Data Link Πελάτης TCP/UDP Data Link Εξυπηρέτης Διαδίκτυο Πραγματική Κίνηση

Παναγιώτης Φουληράς4 Οι διάφορες Υπηρεσίες προσφέρονται από τους Εξυπηρέτες (Servers) –Διεργασίες με προκαθορισμένο Αριθμό Θύρας και πρωτόκολλο μεταφοράς –Ένας εξυπηρέτης μπορεί να εξυπηρετεί ταυτόχρονα πολλούς πελάτες Ταυτοχρονισμός (Concurrency) Υπηρεσίες, Εξυπηρέτες, Πελάτες

Παναγιώτης Φουληράς5 Αντίγραφα Εξυπηρέτη Για να γίνει ταυτόχρονη εξυπηρέτηση Ν πελατών πρέπει να δημιουργηθούν, είτε: –Ν αντίγραφα διεργασιών του εξυπηρέτη Ν για εξυπηρέτηση και 1 για παραλαβή νέου αιτήματος –Είτε Ν νήματα στην ίδια διεργασία εξυπηρέτη N+1 νήματα συνολικά

Παναγιώτης Φουληράς6 API - Γενικά Διασύνδεση Προγραμματισμού Εφαρμογών –Application Program Interface –Καθορίζει σύνολο λειτουργιών από μία εφαρμογή όταν αλληλεπιδρά με το λογισμικό πρωτοκόλλων – Προσοχή στην Διαφορά! –API Υποδοχών (Socket API) η πλέον διαδεδομένη

Παναγιώτης Φουληράς7 Socket API – Γενικά Δεν εξαρτάται από το Λειτουργικό Σύστημα Είναι ξεχωριστό από το Λ/Σ Αποτελεί την «Πόρτα» μέσω της οποίας μία εφαρμογή «συνομιλεί» με το λογισμικό πρωτοκόλλων Ουσιαστικά μία βιβλιοθήκη συναρτήσεων κάνοντας τις βασικές λειτουργίες να μοιάζουν με εκείνες σε αρχεία –Open, file descriptor/handle, read, write, κλπ

Παναγιώτης Φουληράς8 Βασικές Συναρτήσεις – 1 socket –Δημιουργεί socket και επιστρέφει έναν ακέραιο περιγραφέα (sd = socket descriptor) sd = socket (protocol_family, type, protocol) –Αρνητικό αποτέλεσμα δηλώνει αποτυχία 1o: PF_INET 2o: SOCK_STREAM ή SOCK_DGRAM 3o: Κωδικός Πρωτοκόλλου (συχνότερα για TCP ή UDP)

Παναγιώτης Φουληράς9 Βασικές Συναρτήσεις – 2 close ( closesocket στα Windows) –Τερματίζει την χρήση μίας socket αφού κλείσει την σύνδεση (αν υπάρχει – π.χ. TCP) close(sd) 1o: sd (= socket descriptor)

Παναγιώτης Φουληράς10 Βασικές Συναρτήσεις – 3α bind –Διασυνδέει socket με συγκεκριμένο αριθμό θύρας πρωτοκόλλου (χρήσιμο για servers) int bind (sd, local_addr, addrlen) 1o: socket descriptor 2o: δομή διεύθυνσης (μαζί με port number)  Δες επόμενη διαφάνεια για λεπτομέρειες 3o: μήκος δομής διεύθυνσης σε byte

Παναγιώτης Φουληράς11 Βασικές Συναρτήσεις – 3β 2ο η δομή είναι η sockaddr struct sockaddr { u_charsa_len;Μήκος διεύθυνσης u_charsa_family;Οικογένεια διεύθυνσης charsa_data[14];Η ίδια η διεύθυνση };

Παναγιώτης Φουληράς12 Βασικές Συναρτήσεις – 3γ Ειδικά για την περίπτωση ορισμένων πρωτοκόλλων όπως το TCP υπάρχει η πιο εξειδικευμένη δομή-παραλλαγή: struct socaddr_in { u_charsin_len;Μήκος διεύθυνσης u_charsin_family;Οικογένεια διεύθυνσης u_shortsin_port;Port number struct in_addr sin_addr;IP address του Η/Υ charsin_zero[8];Μηδενίζεται (δεν χρησιμοποιείται), για συμπλήρωση 14 byte από sa_data[14] };

Παναγιώτης Φουληράς13 Βασικές Συναρτήσεις – 3δ Σε περίπτωση Πολυεστιακού (Multihomed) Η/Υ, ως IP διεύθυνση προβλέπεται εκείνη της συμβολικής σταθεράς: INADDR_ANY –Τώρα ο server δέχεται αιτήσεις σε όλες τις IP διευθύνσεις του Η/Υ και όχι μόνον σε μία από αυτές

Παναγιώτης Φουληράς14 Βασικές Συναρτήσεις – 4 listen –Μόνον για servers –Θέτει την socket σε παθητική κατάσταση, ώστε να περιμένει να λάβει αιτήσεις από πελάτες –Ισχύει μόνον για αξιόπιστη λήψη sd = socket (sd, qlength) –Αρνητικό αποτέλεσμα δηλώνει αποτυχία 1o: socket descriptor 2o: Μήκος Ουράς για αποθήκευση εισερχομένων αιτήσεων

Παναγιώτης Φουληράς15 Βασικές Συναρτήσεις – 5 accept –Μόνον για servers –Μπλοκάρει έως ότου υπάρξει μία αίτηση στην ουρά –Δημιουργεί νέα socket για περαιτέρω επικοινωνία με πελάτη και μπορεί να παραλάβει νέες αιτήσεις ταυτόχρονα new_sd = accept (sd, cl_addr, cl_addr_length) 1o: socket descriptor 2o: Διεύθυνση Πελάτη (δείκτης σε δομή) 3ο: Μήκος Διεύθυνσης Πελάτη (δείκτης σε ακέραιο)

Παναγιώτης Φουληράς16 Βασικές Συναρτήσεις – 6 connect –Μόνον για clients και connection-oriented συνδέσεις (TCP) –Χρήση σε ασυνδεσμική επικοινωνία απλά οδηγεί σε καταγραφή της socket ως connected και της διεύθυνσης του server connect (sd, s_addr, s_addr_length) –Αρνητική αποτέλεσμα δηλώνει αποτυχία 1o: socket descriptor 2o: Διεύθυνση Εξυπηρέτη (δείκτης σε δομή) 3ο: Μήκος Διεύθυνσης Εξυπηρέτη (δείκτης σε ακέραιο)

Παναγιώτης Φουληράς17 Βασικές Συναρτήσεις – 7 send –Μόνον για connection-oriented συνδέσεις (TCP) send (sd, buff, buff_len, flags) 1o: socket descriptor 2o: Buffer Δεδομένων 3ο: Πλήθος byte σε buffer 4o: Σημαίες για επιλογές – συνήθως μηδέν

Παναγιώτης Φουληράς18 Βασικές Συναρτήσεις – 8 sendto –Μόνον για connectionless συνδέσεις (UDP) sendto (sd, buff, buff_len, flags, dest_addr, dest_addr_length) 1o: socket descriptor 2o: Buffer Δεδομένων 3ο: Πλήθος byte σε buffer 4o: Σημαίες για επιλογές – συνήθως μηδέν 5o: Διεύθυνση Προορισμού 6ο: Μήκος Διεύθυνσης Προορισμού

Παναγιώτης Φουληράς19 Βασικές Συναρτήσεις – 9 sendmsg –Ίδιο με sendto, αλλά με λιγότερες παραμέτρους sendto (sd, msgstruct, flags) 1o: socket descriptor 3o: Σημαίες για επιλογές – συνήθως μηδέν 2o: struct msgstruct { structsockaddr *m_saddr;Δνση προορισμού structdatavec *m_dvec;Μήνυμα (διάνυσμα) int m_dvlength;Πλήθος στοιχείων διανύσματος structaccess *m_rights;Λίστα δικαιωμάτων πρόσβασης int m_alength;Πλήθος στοιχείων λίστας }

Παναγιώτης Φουληράς20 Βασικές Συναρτήσεις – 10 recv –Για λήψη δεδομένων από connection-oriented socket recv (sd, buffer, buff_length, flags) 1o: socket descriptor 2o: buffer για προσωρινή αποθήκευση μηνυμάτων 3ο: Μήκος buffer 4o: Σημαίες για επιλογές – συνήθως μηδέν

Παναγιώτης Φουληράς21 Βασικές Συναρτήσεις – 11 recvfrom –Για λήψη δεδομένων από connectionless socket recvfrom (sd, buffer, buff_length, flags, sender_addr, sender_addr_length) 1o: socket descriptor 2o: buffer για προσωρινή αποθήκευση μηνυμάτων 3ο: Μήκος buffer 4o: Σημαίες για επιλογές – συνήθως μηδέν 5o: Διεύθυνση Αποστολέα 6ο: Μήκος Διεύθυνσης Αποστολέα

Παναγιώτης Φουληράς22 Βασικές Συναρτήσεις – 12 recvmsg –Ίδιο με recvfrom, αλλά με λιγότερες παραμέτρους recvmsg (sd, msgstruct, flags) 1o: socket descriptor 3o: Σημαίες για επιλογές – συνήθως μηδέν 2o: struct msgstruct { structsockaddr *m_saddr;Δνση προέλευσης structdatavec *m_dvec;Μήνυμα (διάνυσμα) int m_dvlength;Πλήθος στοιχείων διανύσματος structaccess *m_rights;Λίστα δικαιωμάτων πρόσβασης int m_alength;Πλήθος στοιχείων λίστας }

Παναγιώτης Φουληράς23 Βοηθητικές Συναρτήσεις – 1 getpeername –Επιστρέφει την διεύθυνση του απομακρυσμένου ομότιμου σημείου getpeername (sd, dest_addr, addr_len) 1o: socket descriptor 2o: Δείκτης σε δομή sockaddr για τοποθέτηση δνσης που θα παραληφθεί 3o: Μήκος Δνσης

Παναγιώτης Φουληράς24 Βοηθητικές Συναρτήσεις – 2 getsockname –Επιστρέφει την διεύθυνση της τοπικής υποδοχής getsockname (sd, local_addr, addr_len) 1o: socket descriptor 2o: Δείκτης σε δομή sockaddr για τοποθέτηση δνσης που θα παραληφθεί 3o: Μήκος Δνσης

Παναγιώτης Φουληράς25 Βοηθητικές Συναρτήσεις – 3 getsockopt –Διαβάζει τις επιλογές της τοπικής υποδοχής getsockopt (sd, level, option_id, option_val, length) 1o: socket descriptor 2o: Επίπεδο πρωτοκόλλου (transport ή χαμηλότερα) 3o: Ταυτότητα επιλογής 4ο: Δνση buffer για τοποθέτηση τιμής επιλογών 5ο: Μήκος buffer

Παναγιώτης Φουληράς26 Βοηθητικές Συναρτήσεις – 4 setsockopt –Θέτει τις επιλογές της τοπικής υποδοχής setsockopt (sd, level, option_id, option_val, length) 1o: socket descriptor 2o: Επίπεδο πρωτοκόλλου (transport ή χαμηλότερα) 3o: Ταυτότητα επιλογής 4ο: Δνση buffer για ανάθεση τιμής επιλογών 5ο: Μήκος buffer

Παναγιώτης Φουληράς27 Βοηθητικές Συναρτήσεις – 5 setsockopt –Θέτει τις επιλογές της τοπικής υποδοχής setsockopt (sd, level, option_id, option_val, length) 1o: socket descriptor 2o: Επίπεδο πρωτοκόλλου (transport ή χαμηλότερα) 3o: Ταυτότητα επιλογής 4ο: Δ/νση buffer για ανάθεση τιμής επιλογών 5ο: Μήκος buffer

Παναγιώτης Φουληράς28 Βοηθητικές Συναρτήσεις – 6 getprotobyname –Με δεδομένο το όνομα ενός πρωτοκόλλου, επιστρέφει δείκτη σε δομή με τον κωδικό του, κλπ ptrp = getprotobyname (name) 1o: Πίνακας με το όνομα του πρωτοκόλλου –Παράδειγμα if ( ((int) (ptrp = getprotobyname (“tcp”))) == 0) { fprintf (stderr, “could not find tcp code”); exit(1); } sd = socket (PF_INET, SOCK_STREAM, ptrp->p_proto);

Παναγιώτης Φουληράς29 Βοηθητικές Συναρτήσεις – 7 htons –Μετατρέπει έναν short integer σε διάταξη byte δικτύου 16-bit. Χρήσιμη για τα port numbers htons (local_short) 1o: short integer –Παράδειγμα sad.sin_port = htons ((u_short ) port);

Παναγιώτης Φουληράς30 Ακολουθία Κλήσεων Συναρτήσεων Υποδοχών Πελάτης Εξυπηρέτης getprotobyname socket bind listen gethostbyname accept

Παναγιώτης Φουληράς31 Ακολουθία Κλήσεων Συναρτήσεων Υποδοχών Πελάτης Εξυπηρέτης gethostbyname getprotobyname socket connect accept

Παναγιώτης Φουληράς32 Ακολουθία Κλήσεων Συναρτήσεων Υποδοχών Πελάτης Εξυπηρέτης recv send close