Επικοινωνία Client/Server Υποδοχές

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Επικοινωνία Client/Server Υποδοχές"

Transcript

1 Επικοινωνία Client/Server Υποδοχές Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία με Υποδοχές 1

2 Ορισμός των Υποδοχών (sockets) Τα sockets προσφέρουν μια γενικευμένη ικανότητα δικτύωσης Είναι διαθέσιμα με τις περισσότερες τρέχουσες διανομές των συστημάτων Unix Επιτρέπουν την επικοινωνία μεταξύ δύο διαφορετικών διεργασιών στην ίδια ή σε διαφορετικές μηχανές Σε έναν προγραμματιστή τα sockets φαίνονται και συμπεριφέρονται σαν έναν χαμηλού επιπέδου file descriptor Αυτό συμβαίνει επειδή εντολές όπως read() και write() χρησιμοποιούνται για τα sockets με τον ίδιο τρόπο που χρησιμοποιούνται με τα αρχεία Επικοινωνία με Υποδοχές 2

3 Ορισμός των Υποδοχών (sockets) In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet The term Internet sockets is also used as a name for an application programming interface (API) for the TCP/IP protocol stack, usually provided by the operating system Internet sockets constitute a mechanism for delivering incoming data packets to the appropriate application process or thread, based on a combination of local and remote IP addresses and port numbers Each socket is mapped by the operational system to a communicating application process or thread Επικοινωνία με Υποδοχές 3

4 Ορισμός των Υποδοχών (sockets) In computing, network programming, essentially identical to socket programming or client server programming, involves writing computer programs that communicate with other programs across a computer network The program or process initiating the communication is called a client process, and the program waiting for the communication to be initiated is the server process The client and server processes together form a distributed system The communication between the client and server process may either be connectionoriented (such as an established TCP virtual circuit or session), or connectionless (based on UDP datagrams) A program that can act both as a client and a server is based on peer-to-peer communication Sockets are usually implemented by an API library such as Berkeley sockets, first introduced in 1983 Most implementations are based on Berkeley sockets, for example Winsock introduced 1991 Other socket API implementations exist, such as the STREAMS-based Transport Layer Interface (TLI) Επικοινωνία με Υποδοχές 4

5 Ορισμός των Υποδοχών (sockets) The Berkeley sockets application programming interface (API) Comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly for communications across a computer network Berkeley sockets (also known as the BSD socket API) originated with the 4.2BSD Unix operating system (released in 1983) as an API Only in 1989, however, could UC Berkeley release versions of its operating system and networking library free from the licensing constraints of AT&T's copyright-protected Unix The Berkeley socket API forms the de facto standard abstraction for network sockets Most other programming languages use an interface similar to the C API The API is also used for Unix domain sockets, which are an interface to interprocess communication (IPC) channels within a single computer All modern operating systems now have some implementation of the Berkeley socket interface, as it became the standard interface for connecting to the Internet Επικοινωνία με Υποδοχές 5

6 Ορισμός των Υποδοχών (sockets) Για τις περισσότερες διαδικασίες που χρησιμοποιούν sockets, οι ρόλοι του πελάτη (client) και του κεντρικού εξυπηρετητή (server) πρέπει να οριστούν Ένας server είναι μια διεργασία που κάνει κάποια λειτουργία κατόπιν αιτήσεως από έναν client Όπως θα φανεί παρακάτω, οι ρόλοι δεν είναι συμμετρικοί και δεν μπορούν να αντιστραφούν εύκολα χωρίς κάποια προσπάθεια Επικοινωνία με Υποδοχές 6

7 Χρήση Χρήση των sockets με έναν connectionless ή datagram τρόπο μεταξύ των client και server στην ίδια μηχανή Σε αυτήν την περίπτωση, ο client δεν εγκαθιστά ρητά μια σύνδεση με τον server Ο client, φυσικά, πρέπει να ξέρει τη διεύθυνση του server Ο server, στη συνέχεια, περιμένει απλά ένα μήνυμα να καταφθάσει. Η διεύθυνση του client είναι μια από τις παραμέτρους του μηνύματος και χρησιμοποιείται από τον server για την απάντησή του Επικοινωνία με Υποδοχές 7

8 Χρήση Xρήση των sockets με έναν συνδεδεμένο τρόπο μεταξύ των client και server στην ίδια μηχανή Σε αυτήν την περίπτωση, οι ρόλοι του πελάτη και του κεντρικού υπολογιστή ενισχύονται περαιτέρω από τον τρόπο με τον οποίο το socket καθιερώνεται και χρησιμοποιείται Αυτό το μοντέλο αναφέρεται συχνά ως connection-oriented client-server μοντέλο Xρήση των sockets με έναν συνδεδεμένο τρόπο μεταξύ των client και server σε διαφορετικές μηχανές Αυτό είναι η επέκταση στο δίκτυο του δεύτερου σταδίου που μόλις αναφέρθηκε Επικοινωνία με Υποδοχές 8

9 Χρήση Επικοινωνία με Υποδοχές 9

10 Internet Sockets Τα δύο βασικά είδη Internet sockets Stream Sockets (SOCK_STREAM) Datagram Sockets (SOCK_DGRAM) Stream Sockets Είναι αξιόπιστα (error free) ιπλής κατεύθυνσης Τelnet, HTTP χρησιμοποιούν stream sockets Υψηλής ποιότητας μετάδοση (χρήση TCP) Datagram Sockets Connectionless sockets Πακέτα μπορεί να χαθούν Χαμηλή ποιότητα μετάδοσης (χρήση UDP) Επικοινωνία με Υποδοχές 10

11 Internet Sockets Ένα stream είναι μια ακολουθία από χαρακτήρες που "ρέουν" προς ή από μια διεργασία Ένα input stream συνδέεται σε κάποια πηγή εισόδου (input source) της διεργασίας, π.χ., πληκτρολόγιο ή socket Ένα output stream συνδέεται σε κάποια πηγή εξόδου (output source), π.χ., οθόνη ή socket Επικοινωνία με Υποδοχές 11

12 Internet Sockets Ο Client πρέπει να επικοινωνήσει με τον server Η διεργασία του server πρέπει να "τρέχει" ήδη Ο server πρέπει να έχει δημιουργήσει ένα socket (πόρτα) για την "υποδοχή" της επικοινωνίας από την πλευρά του client Ο Client επικοινωνεί με τον server (TCP) Με τη δημιουργία ενός τοπικού TCP socket Προσδιορίζοντας μια IP διεύθυνση & αριθμό port της διεργασίας του server Ο client TCP εγκαθιστά σύνδεση με το server TCP Όταν κάποιος client επιδιώκει την επικοινωνία, το server TCP δημιουργεί νέο socket για την επικοινωνία της διεργασίας του server με τον client Επιτρέπει στο server να "μιλάει" με πολλαπλούς clients Ξεχωριστά port numbers για τη διάκριση μεταξύ clients Επικοινωνία με Υποδοχές 12

13 Internet Sockets Ο Client επικοινωνεί με τον server (UDP) εν υπάρχει χειραψία (handshaking) εν εγκαθίσταται σύνδεση μεταξύ client και server Ο αποστολέας επισυνάπτει ρητά την IP διεύθυνση και το port προορισμού σε κάθε πακέτο Ο server πρέπει να εξάγει την IP διεύθυνση και το port του αποστολέα από κάθε πακέτο που λαμβάνει Τα μεταδιδόμενα δεδομένα μπορεί να παραληφθούν εκτός σειράς ή να χαθούν Επικοινωνία με Υποδοχές 13

14 UNIX I/O Βασικές συναρτήσεις Εισόδου/Εξόδου open close read (see also recv and recvfrom) write (see also send and sendto) lseek int desc;... desc = open( file, O_RDWR, 0); read(desc, buffer, 128); close(desc); Επικοινωνία με Υποδοχές 14

15 UNIX I/O Επικοινωνία με Υποδοχές 15

16 Socket API Functions socket() Creates a new socket of a certain socket type, identified by an integer number, and allocates system resources to it bind() Associates a socket with a socket address structure, i.e. a specified local port number and IP address. listen() Used on the server side, and causes a bound TCP socket to enter listening state connect() Used on the client side, and assigns a free local port number to a socket In case of a TCP socket, it causes an attempt to establish a new TCP connection accept() Used on the server side It accepts a received incoming attempt to create a new TCP connection from the remote client, and creates a new socket associated with the socket address pair of this connection send() and recv(), or write() and read(), or recvfrom() and sendto() Used for sending and receiving data to/from a remote socket close() Causes the system to release resources allocated to a socket In case of TCP, the connection is terminated Επικοινωνία με Υποδοχές 16

17 Socket API Functions The Berkeley socket interface is defined in several header files The names and content of these files differ slightly between implementations In general, they include: <sys/socket.h> Core BSD socket functions and data structures <netinet/in.h> AF_INET and AF_INET6 address families and their corresponding protocol families PF_INET and PF_INET6 Widely used on the Internet, these include IP addresses and TCP and UDP port numbers <sys/un.h> PF_UNIX/PF_LOCAL address family Used for local communication between programs running on the same computer Not used on networks <arpa/inet.h> Functions for manipulating numeric IP addresses <netdb.h> Functions for translating protocol names and host names into numeric addresses Searches local data as well as DNS. Επικοινωνία με Υποδοχές 17

18 Κλήση Συστήματος Socket() int socket(int af, int type, int protocol) family or domain Το πρώτο όρισμα ορίζει την οικογένεια () στην οποία ανήκει το socket Οι δύο οικογένειες που χρησιμοποιούνται αρκετά συχνά είναι: AF_UNIX για την επικοινωνία μεταξύ διεργασιών στην ίδια μηχανή (χρήση αρχείων) AF_INET για την επικοινωνία μεταξύ διεργασιών που βρίσκονται σε διαφορετικές μηχανές χρησιμοποιώντας τα τυποποιημένα πρωτόκολλα (IP/UDP/TCP) AF_INET6 για IPv6 type Το δεύτερο όρισμα είναι ο τύπος του socket και έχει να κάνει με το «στυλ» της επικοινωνίας Οι δύο ο συνηθέστερα χρησιμοποιημένες τιμές περιλαμβάνουν: SOCK_STREAM: Μία ροή δεδομένων χωρίς όρια μεγέθους Η παράδοση σε ένα δικτυωμένο περιβάλλον είναι εγγυημένη Εάν η παράδοση είναι αδύνατη, ο αποστολέας λαμβάνει έναν μήνυμα λάθους SOCK_DGRAM: Μια ροή δεδομένων όπου κάθε πακέτο έχει συγκεκριμένο μέγεθος Η παράδοση σε ένα δικτυωμένο περιβάλλον δεν είναι εγγυημένη Επικοινωνία με Υποδοχές 18

19 Κλήση Συστήματος Socket() int socket(int af, int type, int protocol) protocol Συνήθως protocol = 0 Επιτρέπει στο σύστημα να επιλέξει το πρώτο πρωτόκολλο που είναι διαθέσιμο αφού πρώτα έχει οριστεί η οικογένεια και ο τύπος του socket IPPROTO_TCP: για το πρωτόκολλο TCP IPPROTO_UDP: για το πρωτόκολλο UDP2 These protocols are specified in <netinet/in.h> Η συνάρτηση επιστρέφει -1 σε περίπτωση λάθους, διαφορετικά τον περιγραφέα της υποδοχής Μια άλλη διεργασία που θέλει να επικοινωνήσει με τη προηγούμενη δεν έχει τρόπο να ονομάσει την υποδοχή, μέχρις ότου η υποδοχή να λάβει διεύθυνση Στο πεδίο UNIX η διεύθυνση συνήθως αποτελείται από ένα ή δύο ονόματα διαδρομής Στο πεδίο Internet η διεύθυνση αποτελείται από ένα συνδυασμό IP διεύθυνσης και αριθμού θύρας (port) Επικοινωνία με Υποδοχές 19

20 Κλήση Συστήματος Bind() int bind(int sockfd, struct sockaddr *my_addr, int addrlen) H πρακτική χρήση της bind, είναι να δένει το socket που δημιουργήθηκε, σε μια συγκεκριμένη port sockfd Eίναι το socket file descriptor (το socket που δημιουργήθηκε) my_addr Eίναι ένας δείκτης στην δομή sockaddr, η οποία περιέχει πληροφορίες για ένα όνομα διαδρομής ή την local IP address, την port στην οποία θα γίνει bind το socket) addrlen Eίναι το μέγεθος του sockaddr (χρήση του sizeof(struct sockaddr)) Η συνάρτηση επιστρέφει -1 σε περίπτωση λάθους, διαφορετικά 0 σε περίπτωση επιτυχίας Επικοινωνία με Υποδοχές 20

21 Παράδειγμα 1: Socket() Bind() Παράδειγμα 1 ημιουργία υποδοχής με αριθμητική IP διεύθυνση Υπάρχουν αρκετές μακροεντολές που περιλαμβάνουν προκαθορισμένες διευθύνσεις, όπως INADDR_LOOPBACK, INADDR_BROADCAST κλπ Η μακροεντολή INADDR_ANY επιπτρέπει στο σύστημα να αποδώσει αυτό οποιαδήποτε εισερχόμενη IP διεύθυνση ώστε να επιτευχθεί σύνδεση με απομακρυσμένο υπολογιστή που αναμένει αίτημα σύνδεσης στη συγκεκριμένη θύρα When receiving, a socket bound to this address receives packets from all interfaces When sending, a socket bound with INADDR_ANY binds to the default IP address, which is that of the lowest-numbered interface Επικοινωνία με Υποδοχές 21

22 Παράδειγμα 1: Socket() Bind() Παράδειγμα 1 ημιουργία υποδοχής με αριθμητική IP διεύθυνση Οι συναρτήσεις htons(), htonl() χρησιμοποιούνται για να 'μεταφράσουν', αν είναι απαραίτητο, τη σειρά αποθήκευσης των bytes (byte order) ακεραίων (short και long) μεταξύ του οικείου υπολογιστή και του δικτύου (host to network) Αντίστοιχα υπάρχουν και οι συναρτήσεις ntohs(), ntohl() (network to host) Αυτό γίνεται για να εξασφαλιστεί επικοινωνία μεταξύ 'big-endian' και 'long-endian' συστημάτων The htons function can be used to convert an IP port number in host byte order to the IP port number in network byte order Επικοινωνία με Υποδοχές 22

23 Παράδειγμα 1: Socket() Bind() The adjectives big-endian and little-endian refer to which bytes are most significant in multibyte data types and describe the order in which a sequence of bytes is stored in a computer s memory In a big-endian system, the most significant value in the sequence is stored at the lowest storage address (i.e., first) In a little-endian system, the least significant value in the sequence is stored first For example, consider the number 1025 (2 to the tenth power plus one) stored in a 4- byte integer: Who is who Many mainframe computers, particularly IBM mainframes, use a big-endian architecture The PowerPC system is bi-endian because it can understand both systems Most modern computers, including PCs, use the little-endian system (LSB first) The network byte order, as used on the Internet big-endian (MSB first) Επικοινωνία με Υποδοχές 23

24 Παράδειγμα 1: Socket() Bind() #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> int make_socket (unsigned short int port) { int sock; struct sockaddr_in name; /* Create the socket. */ sock = socket (PF_INET, SOCK_STREAM, 0); if (sock < 0) { perror ("socket"); exit (EXIT_FAILURE); } /* Give the socket a name. */ name.sin_family = AF_INET; name.sin_port = htons (port); name.sin_addr.s_addr = htonl (INADDR_ANY); if (bind (sock, (struct sockaddr *) &name, sizeof (name)) < 0) { perror ("bind"); exit (EXIT_FAILURE); } return sock; } Επικοινωνία με Υποδοχές 24

25 Παράδειγμα 1: Socket() Bind() Επικοινωνία με Υποδοχές 25

26 Παράδειγμα 1: Socket() Bind() Επικοινωνία με Υποδοχές 26

27 Παράδειγμα 2: Socket() Bind() Παράδειγμα 2 ημιουργία υποδοχής με χρήση συναρτήσεων και δηλώσεων που συλλέγουν πληροφορίες για τον υπολογιστή μέ βάση το όνομα hostname Το όνομα hostname χρησιμοποιείται ως κλειδή αναζήτησης πληροφοριών σχετικά με τον υπολογιστή σε μια 'βάση δεδομένων υπολογιστών' (host database) Η απλούστερη host database είναι το αρχείο /etc/hosts που διατηρεί κάθε σύστημα UNIX/Linux Η συνάρτηση gethostbyname() αναζητά πληροφορίες για τον υπολογιστή με το όνομα hostname στη βάση δεδομένων και τις αποθηκεύει στη δομή hostinfo Από τη δομή hostinfo αντιγράφουμε στη δομή sockaddr την IP διεύθυνση του υπολογιστή The gethostbyname() function returns a structure of type hostent for the given host name. Here name is either a host name, or an IPv4 address in standard dot notation, or an IPv6 address in colon (and possibly dot) notation. If name is an IPv4 or IPv6 address, no lookup is performed and gethostbyname() simply copies name into the h_name field and its struct in_addr equivalent into the h_addr_list[0] field of the returned hostent structure Αντίστοιχη διαδικασία μπορεί να υλοποιηθεί και για την τιμή port, η οποία θα μπορούσε να εξαχθεί από μια βάση δεδομένων υπηρεσιών (service database) έτσι ώστε η θύρα λαμβάνει τη τιμή που αντιστοιχεί στο όνομα της αντιστοιχης υπηρεσίας Η συνηθισμένη βάση δεδομένων είναι το αρχείο /etc/services Επικοινωνία με Υποδοχές 27

28 Παράδειγμα 2: Socket() Bind() #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> void init_sockaddr (struct sockaddr_in *name, const char *hostname, unsigned short int port) { struct hostent *hostinfo; name->sin_family = AF_INET; name->sin_port = htons (port); hostinfo = gethostbyname (hostname); if (hostinfo == NULL) { fprintf (stderr, "Unknown host %s.\n", hostname); exit (EXIT_FAILURE); } } name->sin_addr = *(struct in_addr *) hostinfo->h_addr; Επικοινωνία με Υποδοχές 28

29 Σύνδεση Υποδοχών Ροής Συνήθως η σύνδεση μέσω υποδοχών δεν είναι συμμετρική Η μια διεργασία λειτουργεί ως διακομιστής και η άλλη ως πελάτης Ο διακομιστής συνδέει την υποδοχή του σε προσυμφωνημένο όνομα διαδρομής ή θύρα Στη συνέχεια αναμένει αιτήσεις επικοινωνίας άλλων διεργασιών μέσω της υποδοχής Στη περίπτωση υποδοχών ροής (SOCK_STREAM), ο διακομιστής καλεί τη συνάρτηση listen() Ο πελάτης συνδέεται στην υποδοχή του διακομιστή με τη συνάρτηση connect() που έχει σύνταξη και λειτουργία αντίστοιχη με τη συνάρτηση bind() Στη περίπτωση που ο τύπος της υποδοχής είναι SOCK_STREAM ο διακομιστής απαντά στo αίτημα connect() με τη συνάρτηση accept() ώστε να ολοκληρωθεί η επικοινωνία Επικοινωνία με Υποδοχές 29

30 Κλήση Συστήματος Listen() int listen(int s, int backlog) Η listen() καθιερώνει το socket ως το παθητικό άκρο μίας σύνδεσης εν αναστέλλει την εκτέλεση της διεργασίας Κανένα μήνυμα δεν μπορεί να σταλεί μέσω αυτού του socket Τα εισερχόμενα μηνύματα μπορούν να παραληφθούν s Eίναι ο file descriptor που συνδέεται με το socket που δημιουργείται χρησιμοποιώντας την socket() backlog είναι το μέγεθος της ουράς αναμονής των αιτήσεων που περιμένουν ενώ ο εξυπηρετητής είναι απασχολημένος με την εξυπηρέτηση μίας αίτησης Η συνήθης τιμή είναι 5 Once a connection is accepted, it is dequeued 0 επιστρέφεται στην επιτυχία, -1 στο λάθος με το errno να δείχνει το πρόβλημα Επικοινωνία με Υποδοχές 30

31 Κλήση Συστήματος Connect() int connect(int sockfd, struct sockaddr *serv_addr, int addrlen) H connect, εγκαθιδρύει μια σύνδεση με ένα απομακρυσμένο host sockfd Είναι το τοπικό socket file descriptor serv_addr Είναι η διεύθυνση του απομακρυσμένου host που θέλουμε να συνδεθούμε Addrlen Το μέγεθος της διεύθυνσης connect() returns an integer representing the error code: 0 represents success, while -1 represents an error Επικοινωνία με Υποδοχές 31

32 Κλήση Συστήματος Accept() int accept(int sockfd, struct sockaddr *name, int *namelen) Η κλήση της accept() εγκαθιστά μια σύνδεση πελάτη-εξυπηρετητή από την πλευρά του εξυπηρετητή Ο πελάτης ζητά τη χρησιμοποίηση της σύνδεσης με την κλήση της connect() Ο εξυπηρετητής πρέπει να έχει δημιουργήσει το socket χρησιμοποιώντας την socket(), να έχει δώσει ένα όνομα στο socket με την bind(), και να την ενεργοποιήσει περιμένοντας νέες αιτήσεις με την listen() sockfd Eίναι ο file descriptor για το socket o οποίος επιστρέφεται από την socket() name Eίναι ένας δείκτης σε μια δομή του τύπου sockaddr Η κλήση της accept() επιστρέφει -1 σε περίπτωση λάθους και ένα νέο περιγραφέα υποδοχής, που αναφέρεται μόνο στη συγκεκριμένη σύνδεση Ένας διακομιστής μπορεί να έχει ταυτόχρονα πολλαπλές συνδέσεις SOCK_STREAM σε μια υποδοχή All further communication with the remote host now occurs via this new socket Datagram sockets do not require processing by accept() since the receiver may immediately respond to the request using the listening socket Επικοινωνία με Υποδοχές 32

33 Κλήση Συστήματος Recvfrom() Ανάλογα με το είδος του socket που χρησιμοποιείται, υπάρχουν διαφορετικές εντολές για αποστολή και λήψη δεδομένων Για stream sockets int send(int sockfd, const void *msg, int len, int flags); int recv(int sockfd, void *buf, int len, unsigned int flags); Για datagram sockets int sendto(int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen); int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen); Επικοινωνία με Υποδοχές 33

34 Κλήση Συστήματος Sendto() int sendto(int s, char *msg, int len, int flags, struct sockaddr *to, int tolen) Αυτή η λειτουργία επιτρέπει να αποσταλεί ένα μήνυμα msg μήκους len σε ένα socket με file descriptor s το οποίο περιγράφεται με το to και tolen, όπου tolen είναι το πραγματικό μήκος το to Τα flags προς το παρόν θα είναι 0 Ο αριθμός χαρακτήρων που στέλνονται είναι ο αριθμός που επιστρέφει η συνάρτηση Όταν υπάρξει κάποιο πρόβλημα, -1 επιστρέφεται και το errno περιγράφει το λάθος Επικοινωνία με Υποδοχές 34

35 Κλήση Συστήματος Recvfrom() int recvfrom(int s, char *msg, int len, int flags, struct sockaddr *from, int *fromlen) Αυτή η συνάρτηση επιτρέπει σε ένα μήνυμα msg με μέγιστο μήκος len να διαβαστεί από ένα socket με file descriptor s το οποίο περιγράφεται με το from και fromlen, όπου fromlen είναι το πραγματικό μήκος το from Ο αριθμός χαρακτήρων που διαβάζονται πραγματικά από την υποδοχή είναι και ο αριθμός που επιστρεφεται από την συνάρτηση Όταν υπάρξει κάποιο λάθος, -1 επιστρέφεται και το errno περιγράφει το λάθος Τα flags μπορεί να είναι 0, ή μπορεί να είναι MSG_PEEK για να εξετάσει ένα μήνυμα χωρίς πραγματικά να το λάβει από τη ουρά αναμονής Εάν κανένα μήνυμα δεν είναι διαθέσιμο για να διαβαστεί, η διαδικασία θα μπλοκάρει περιμένοντας ένα, εκτός και αν το socket έχει οριστεί με nonblocking συμπεριφορά Η συνάρτηση read() μπορεί επίσης να χρησιμοποιηθεί για να διαβάσουμε δεδομένα από ένα socket Επικοινωνία με Υποδοχές 35

36 Κλήση Συστήματος Close() int close(sockfd) The operating system does not release the resources allocated to a socket until a close() call occurs on the socket descriptor This is especially important if the connect() call fails and may be retried Each successful call to socket() must have a matching call to close() in all possible execution paths The header file <unistd.h> defines the close function When the close() system call is initiated by an application, only the interface to the socket is destroyed, not the socket itself It is the kernel's responsibility to destroy the socket internally Sometimes, a socket may enter a TIME_WAIT state, on the server side, for up to 4 minutes Επικοινωνία με Υποδοχές 36

37 UDP Επικοινωνία client/server Τα πρωτόκολλα επικοινωνίας χωρίς σύνδεση (Connectionless Protocols) επιτρέπουν την αποστολή δεδομένων χωρίς να είναι απαραίτητη η σύνδεση πριν την αποστολή των δεδομένων Το πρωτόκολλο UDP (User Datagram Protocol- Πρωτόκολλο Αυτοδύναμο Πακέτου Χρήστη) είναι ένα πρωτόκολλο επικοινωνίας χωρίς σύνδεση Σε ένα connectionless πρωτόκολλο και τα δύο sockets πρέπει να γνωστοποιήσουν την ύπαρξή τους στο σύστημα χρησιμοποιώντας την bind Όταν καλείται η bind συνδέεται με ένα νέο port δεν μπορεί να συνδεθεί με ένα που ήδη χρησιμοποιείται Εάν θέσουμε το port = 0 τότε το σύστημα δίνει ένα αχρησιμοποίητο μέχρι εκείνη τη στιγμή port Για να γράψουμε ή να διαβάσουμε δεδομένα χρησιμοποιούμε τις συναρτήσεις recvform/sendto και όχι τις read/write Επικοινωνία με Υποδοχές 37

38 UDP Επικοινωνία client/server Επικοινωνία με Υποδοχές 38

39 UDP Server.c Επικοινωνία με Υποδοχές 39

40 UDP Server.c Επικοινωνία με Υποδοχές 40

41 UDP Client.c Επικοινωνία με Υποδοχές 41

42 UDP Client.c Επικοινωνία με Υποδοχές 42

43 TCP Επικοινωνία client/server Ο server κάνει το socket του γνωστό στο σύστημα χρησιμοποιώντας την bind Αυτό βοηθάει στην εύρεση του socket από κάποιο άλλο socket Ο server ακούει ( listen ) σε αυτό το socket για να δεχτεί ( accept ) εισερχόμενα μηνύματα Ο πελάτης (client) δημιουργεί μία δικτυακή σύνδεση στο αντίστοιχο socket και οι δύο διαδικασίες (client- server) αρχίζουν την ανταλλαγή μηνυμάτων Η ανταλλαγή μηνυμάτων είναι χωρίς όριο και γίνεται και προς τις δύο κατευθύνσεις Επικοινωνία με Υποδοχές 43

44 TCP Επικοινωνία client/server Επικοινωνία με Υποδοχές 44

45 Συναρτήσεις Μετατροπής Διευθύνσεων inet_ntoa(), inet_aton(), inet_addr All of these functions convert IP addresses from a struct in_addr to a string in dots-andnumbers format (e.g. " ") and vice-versa struct in_addr is part of your struct sockaddr_in, most likely If you have an IP address passed on the command line this is the easiest way to get a struct in_addr to connect() to The function inet_ntoa() converts a network address in a struct in_addr to a dots-andnumbers format string The "n" in "ntoa" stands for network, and the "a" stands for ASCII for historical reasons The function inet_aton() is the opposite, converting from a dots-and-numbers string into a in_addr_t (which is the type of the field s_addr in your struct in_addr) Finally, the function inet_addr() is an older function that does basically the same thing as inet_aton() It's theoretically deprecated, but you'll see it a lot and the police won't come get you if you use it These functions are deprecated because they don't handle IPv6! Use inet_ntop() or inet_pton() instead! They are included here because they can still be found in the wild Επικοινωνία με Υποδοχές 45

46 Συναρτήσεις Μετατροπής Διευθύνσεων Επικοινωνία με Υποδοχές 46

47 Συναρτήσεις Μετατροπής Διευθύνσεων Επικοινωνία με Υποδοχές 47

48 Συναρτήσεις Ανάκτησης Ονομάτων Επικοινωνία με Υποδοχές 48

49 Συναρτήσεις Ανάκτησης Ονομάτων The gethostbyname() and gethostbyaddr() functions These functions are not strictly a component of the BSD socket API, but are often used in conjunction with the API functions For instance If you have " you can use gethostbyname() to get its IP address and store it in a struct in_addr Conversely, if you have a struct in_addr or a struct in6_addr, you can use gethostbyaddr() to get the hostname back Furthermore, these functions are now considered legacy interfaces for querying the domain name system New functions that are completely protocol-agnostic have been defined These new function are getaddrinfo() and getnameinfo(), and are based on a new addrinfo data structure In particular, gethostbyname() doesn't work well with IPv6 gethostbyaddr() is IPv6 compatible, but you should use the newer shinier getnameinfo() instead Επικοινωνία με Υποδοχές 49

50 Συναρτήσεις Ανάκτησης Ονομάτων The gethostbyname() and gethostbyaddr() functions Used to resolve host names and addresses in the domain name system or the local host's other resolver mechanisms (e.g., /etc/hosts lookup) They return a pointer to an object of type struct hostent, which describes an Internet Protocol host The functions take the following arguments: name specifies the name of the host. For example: addr specifies a pointer to a struct in_addr containing the address of the host. len specifies the length, in bytes, of addr. type specifies the address family type (e.g., AF_INET) of the host address. The functions return a NULL pointer in case of error, in which case the external integer h_errno may be checked to see whether this is a temporary failure or an invalid or unknown host Otherwise a valid struct hostent * is returned Επικοινωνία με Υποδοχές 50

51 Συναρτήσεις Ανάκτησης Ονομάτων Επικοινωνία με Υποδοχές 51

52 Συναρτήσεις Ανάκτησης Ονομάτων The getaddrinfo() and getnameinfo() functions Part of the POSIX standard application programming interface (API) for converting domain name system (DNS) hostnames and IP addresses between their humanreadable text representations and structured binary formats for the operating system's networking API They are inverse functions of each other This set of functions is fully network protocol agnostic and supports both IPv4 and IPv6 It is the recommended interface for name resolution in building protocol independent applications and for transitioning legacy IPv4 code to the IPv6 Internet getaddrinfo() Converts human-readable text strings representing hostnames or IP addresses into a dynamically allocated linked list of struct addrinfo structures getnameinfo() Converts the internal binary representation of an IP address in the form of a struct sockaddr pointer into text strings consisting of the hostname or, if the address cannot be resolved into a name, a textual IP address representation, as well as the service port name or number Επικοινωνία με Υποδοχές 52

53 Συναρτήσεις Ανάκτησης Ονομάτων The getaddrinfo() and getnameinfo() functions The C data structure used to represent addresses and hostnames within the networking API is the following: Επικοινωνία με Υποδοχές 53

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 Δικτυακός Προγραμματισμός Βασικές Έννοιες: IP addresses,

Διαβάστε περισσότερα

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 3 η Διάλεξη: Δικτυακός Προγραμματισμός Unix Socket programming Μοντέλο client-server O βασικός τύπος δικτυακών εφαρμογών είναι client - server H σχέση server και client μπορεί

Διαβάστε περισσότερα

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,

Διαβάστε περισσότερα

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

Διαβάστε περισσότερα

Υποδοχείς (Sockets) Προγραμματισμός II 1

Υποδοχείς (Sockets) Προγραμματισμός II 1 Υποδοχείς (Sockets) Προγραμματισμός II 1 lalis@inf.uth.gr Υποδοχείς Ειδικές δομές διαδιεργασιακής επικοινωνίας Προσπελάζονται μέσω περιγραφέων αρχείων μπορεί να χρησιμοποιηθούν οι read, write, close μπορεί

Διαβάστε περισσότερα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Ζητήματα Σχεδίασης Λογισμικού Πελάτη

Ζητήματα Σχεδίασης Λογισμικού Πελάτη Ζητήματα Σχεδίασης Λογισμικού Πελάτη Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Αναγνώριση Τοποθεσίας Εξυπηρετητή Για την αναγνώριση της διεύθυνσης και της θύρας ενός εξυπηρετητή ο πελάτης μπορεί να

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Δικτυακός προγραμματισμός

Δικτυακός προγραμματισμός Δικτυακός προγραμματισμός (hands on) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Μοντέλο client-server O βασικός τύπος δικτυακών εφαρμογών είναι client - server H σχέση

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

Δικτυακός Προγραμματισμός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας

Δικτυακός Προγραμματισμός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Δικτυακός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Δικτυακός, Douglas E. Comer, David L. Stevens, Εκδόσεις ΙΩΝ,

Διαβάστε περισσότερα

Επικοινωνία Client/Server Υποδοχές (Παραδείγματα)

Επικοινωνία Client/Server Υποδοχές (Παραδείγματα) Επικοινωνία Client/Server Υποδοχές (Παραδείγματα) Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία με Υποδοχές (Παραδείγματα) 1 Συναρτήσεις Ανάκτησης Ονομάτων Επικοινωνία με Υποδοχές

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Ταυτόχρονοι και Επαναληπτικοί Εξυπηρετητές Επαναληπτικός εξυπηρετητής: επεξεργάζεται μόνο μία αίτηση τη φορά. Ταυτόχρονος

Διαβάστε περισσότερα

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service) Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

Διαβάστε περισσότερα

HY150a Φροντιστήριο 3 24/11/2017

HY150a Φροντιστήριο 3 24/11/2017 HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 1999-2000 ΜΑΘΗΜΑ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ : Θ. ΑΠΟΣΤΟΛΟΠΟΥΛΟΣ ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CLIENT-SERVER(πελάτη-εξυπηρετητή)

Διαβάστε περισσότερα

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

{ int pipe(int fd[ ]) close

{ int pipe(int fd[ ]) close 104 { { { { { { 105 pipe { int pipe(int fd[ ]) { fd[0] fd[1] {, -,,, write read { close { pipe 0-1 106 pipe /* File: pipe_demo.c */ #include /* For printf */ #define READ 0 /* Read end of pipe

Διαβάστε περισσότερα

The Simply Typed Lambda Calculus

The Simply Typed Lambda Calculus Type Inference Instead of writing type annotations, can we use an algorithm to infer what the type annotations should be? That depends on the type system. For simple type systems the answer is yes, and

Διαβάστε περισσότερα

Στρατηγικές Ασφάλειας

Στρατηγικές Ασφάλειας Στρατηγικές Ασφάλειας Ασφάλεια Πληροφοριακών Συστημάτων. Διδάσκων: Σ. Κοντογιάννης Least/(Most) Privileges Defense in Depth Συγκεντρωτική Στρατηγική Weakest Link Strategy Fail Safe Stance Fail Safe Stance

Διαβάστε περισσότερα

4 η ιάλεξη: Signals UDP Sockets

4 η ιάλεξη: Signals UDP Sockets Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 12: Συνοπτική Παρουσίαση Ανάπτυξης Κώδικα με το Matlab Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Socket Application Programming Interface

Socket Application Programming Interface Socket Application Programming Interface Εισαγωγή Το socket είναι ένας τύπος διεπαφής μεταξύ των προγραμμάτων εφαρμογής και του λογισμικού πρωτοκόλλων Είναι ευρέως διαθέσιμο για να διασφαλίζεται η μεταφερσιμότητα

Διαβάστε περισσότερα

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1 Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006 ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/26 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι το 1 εκτός αν ορίζεται διαφορετικά στη διατύπωση

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

Διαβάστε περισσότερα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

Topic 5: Sockets. *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη

Topic 5: Sockets. *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη Topic 5: Sockets *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη Επικοινωνία διεργασιών σε διαφορετικούς υπολογιστές Έχουµε δει(ή θαδούµε) διαδιεργασιακή

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

Διαβάστε περισσότερα

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 13 Δεκεμβρίου 2016, 23:59 * Εμπνευσμένο και υλοποιημένο από το Μανώλη Σουρλίγκα :) Γενική περιγραϕή Στο οικοσύστημα του

Διαβάστε περισσότερα

HY335 4ο Φροντιστήριο

HY335 4ο Φροντιστήριο HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία

Διαβάστε περισσότερα

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

6.1. Dirac Equation. Hamiltonian. Dirac Eq. 6.1. Dirac Equation Ref: M.Kaku, Quantum Field Theory, Oxford Univ Press (1993) η μν = η μν = diag(1, -1, -1, -1) p 0 = p 0 p = p i = -p i p μ p μ = p 0 p 0 + p i p i = E c 2 - p 2 = (m c) 2 H = c p 2

Διαβάστε περισσότερα

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL

Διαβάστε περισσότερα

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί

Διαβάστε περισσότερα

derivation of the Laplacian from rectangular to spherical coordinates

derivation of the Laplacian from rectangular to spherical coordinates derivation of the Laplacian from rectangular to spherical coordinates swapnizzle 03-03- :5:43 We begin by recognizing the familiar conversion from rectangular to spherical coordinates (note that φ is used

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

Homework 3 Solutions

Homework 3 Solutions Homework 3 Solutions Igor Yanovsky (Math 151A TA) Problem 1: Compute the absolute error and relative error in approximations of p by p. (Use calculator!) a) p π, p 22/7; b) p π, p 3.141. Solution: For

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

Διαβάστε περισσότερα

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

Διαβάστε περισσότερα

CYTA Cloud Server Set Up Instructions

CYTA Cloud Server Set Up Instructions CYTA Cloud Server Set Up Instructions ΕΛΛΗΝΙΚΑ ENGLISH Initial Set-up Cloud Server To proceed with the initial setup of your Cloud Server first login to the Cyta CloudMarketPlace on https://cloudmarketplace.cyta.com.cy

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Instruction Execution Times

Instruction Execution Times 1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables

Διαβάστε περισσότερα

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE) EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

2 Composition. Invertible Mappings

2 Composition. Invertible Mappings Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,

Διαβάστε περισσότερα

Επίπεδο δικτύου IP διευθυνσιοδότηση

Επίπεδο δικτύου IP διευθυνσιοδότηση Επίπεδο δικτύου IP διευθυνσιοδότηση (πες μου την IP σου να σου πω ποιος είσαι) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής

Διαβάστε περισσότερα

C.S. 430 Assignment 6, Sample Solutions

C.S. 430 Assignment 6, Sample Solutions C.S. 430 Assignment 6, Sample Solutions Paul Liu November 15, 2007 Note that these are sample solutions only; in many cases there were many acceptable answers. 1 Reynolds Problem 10.1 1.1 Normal-order

Διαβάστε περισσότερα

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 5/03/204 Συμπληρωματικές Διαφάνειες Νίκος Δημητρίου ΟΣΣ/5.03.204/Ν.Δημητρίου ΟΣΣ/5.03.204/Ν.Δημητρίου 2 ΟΣΣ/5.03.204/Ν.Δημητρίου 3 ΟΣΣ/5.03.204/Ν.Δημητρίου 4 Θεωρία Aloha/Slotted

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

Διαβάστε περισσότερα

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications:

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications: UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences EECS 150 Fall 2001 Prof. Subramanian Midterm II 1) You are implementing an 4:1 Multiplexer that has the following specifications:

Διαβάστε περισσότερα

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 3η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

Διαβάστε περισσότερα

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016 Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Dynamic types, Lambda calculus machines Apr 21 22, 2016 1 Dynamic types and contracts (a) To make sure you understand the

Διαβάστε περισσότερα

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΤΜ PROJECT Άννα Τριανταφύλλου ΑΕΜ : 456 επιβλέπων καθηγητής: Μηνάς Δασυγένης Περιεχόμενα 1. 2. 3.

Διαβάστε περισσότερα

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

Διαβάστε περισσότερα

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ σελίδα 1 Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ Περιεχόµενα Αναφορά στις αλλαγές που επιφέρει το IPv6 στην ανάπτυξη δικτυακών εφαρµογών

Διαβάστε περισσότερα

PARTIAL NOTES for 6.1 Trigonometric Identities

PARTIAL NOTES for 6.1 Trigonometric Identities PARTIAL NOTES for 6.1 Trigonometric Identities tanθ = sinθ cosθ cotθ = cosθ sinθ BASIC IDENTITIES cscθ = 1 sinθ secθ = 1 cosθ cotθ = 1 tanθ PYTHAGOREAN IDENTITIES sin θ + cos θ =1 tan θ +1= sec θ 1 + cot

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Δικτυακά πρωτόκολλα και εφαρμογές, Δρομολόγηση Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Μοντέλο πελάτη-εξυπηρετητή Προκειμένου να χρησιμοποιήσουμε μια υπηρεσία του Internet

Διαβάστε περισσότερα

Section 9.2 Polar Equations and Graphs

Section 9.2 Polar Equations and Graphs 180 Section 9. Polar Equations and Graphs In this section, we will be graphing polar equations on a polar grid. In the first few examples, we will write the polar equation in rectangular form to help identify

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

SOAP API. https://bulksmsn.gr. Table of Contents

SOAP API. https://bulksmsn.gr. Table of Contents SOAP API https://bulksmsn.gr Table of Contents Send SMS...2 Query SMS...3 Multiple Query SMS...4 Credits...5 Save Contact...5 Delete Contact...7 Delete Message...8 Email: sales@bulksmsn.gr, Τηλ: 211 850

Διαβάστε περισσότερα

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

Διαβάστε περισσότερα

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο JDBC JDBC is a set of classes and interfaces written in Java that allows Java programs to send SQL statements to a database like Oracle JDBC

Διαβάστε περισσότερα

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM NUTWBCAM A.S. DRIGAS Applied Technologies Department NCSR DEMOKRITOS Ag. Paraskevi GREECE dr@imm.demokritos.gr http://imm.demokritos.gr Το NutWBCam είναι ένα RealVideo πρόγραµµα που σας δίνει τη δυνατότητα

Διαβάστε περισσότερα

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach

Διαβάστε περισσότερα

Section 8.3 Trigonometric Equations

Section 8.3 Trigonometric Equations 99 Section 8. Trigonometric Equations Objective 1: Solve Equations Involving One Trigonometric Function. In this section and the next, we will exple how to solving equations involving trigonometric functions.

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

TMA4115 Matematikk 3

TMA4115 Matematikk 3 TMA4115 Matematikk 3 Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet Trondheim Spring 2010 Lecture 12: Mathematics Marvellous Matrices Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet

Διαβάστε περισσότερα

Finite Field Problems: Solutions

Finite Field Problems: Solutions Finite Field Problems: Solutions 1. Let f = x 2 +1 Z 11 [x] and let F = Z 11 [x]/(f), a field. Let Solution: F =11 2 = 121, so F = 121 1 = 120. The possible orders are the divisors of 120. Solution: The

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

Διαβάστε περισσότερα

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Ημερομηνία παράδοσης 2 εβδομάδες μετά την έναρξη της άσκησης 1. Γενικά για το TCP/IP Η ομάδα πρωτοκόλλων TCP/IP επιτρέπει σε υπολογιστές όλων των μεγεθών, από

Διαβάστε περισσότερα

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας

Διαβάστε περισσότερα

Modbus basic setup notes for IO-Link AL1xxx Master Block

Modbus basic setup notes for IO-Link AL1xxx Master Block n Modbus has four tables/registers where data is stored along with their associated addresses. We will be using the holding registers from address 40001 to 49999 that are R/W 16 bit/word. Two tables that

Διαβάστε περισσότερα

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο Project Phase 1 ΗΥ - 335α Χειμερινό εξάμηνο 2012-2013 Διδάσκουσα: Παπαδοπούλη Μαρία Υπεύθυνος βοηθός: Σουρλίγκας Μανώλης, surligas@csd.uoc.gr

Διαβάστε περισσότερα

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων Hancock Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος Χ346339 Τ911778 ΕΠΛ 428 Προγραμματισμός Συστημάτων Ιστορική Αναδρομή Δημιουργήθηκε από την εταιρεία ΑΤ&Τ LAB Αφορμή δημιουργίας: Η ανάγκη για καθαρό και αποδοτικό

Διαβάστε περισσότερα

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού Μεταφορά αρχείων Πρωτόκολλο FTP Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού Είναι ανεξάρτητο του λειτουργικού συστήματος και του

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Εισαγωγή

Λειτουργικά Συστήματα. Εισαγωγή Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος

Διαβάστε περισσότερα

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Διαστημικό εστιατόριο του (Μ)ΑστροΈκτορα Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Μόλις μια παρέα πελατών κάτσει σε ένα

Διαβάστε περισσότερα

the total number of electrons passing through the lamp.

the total number of electrons passing through the lamp. 1. A 12 V 36 W lamp is lit to normal brightness using a 12 V car battery of negligible internal resistance. The lamp is switched on for one hour (3600 s). For the time of 1 hour, calculate (i) the energy

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

Διαβάστε περισσότερα

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Ελληνικά Ι English 1/7 Δημιουργία Λογαριασμού Διαχείρισης Επιχειρηματικής Τηλεφωνίας μέσω της ιστοσελίδας

Διαβάστε περισσότερα

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

Διαβάστε περισσότερα

The challenges of non-stable predicates

The challenges of non-stable predicates The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

PortSip Softphone. Ελληνικά Ι English 1/20

PortSip Softphone. Ελληνικά Ι English 1/20 PortSip Softphone Ελληνικά Ι English 1/20 1. Περιεχόμενα 2. Εγκατάσταση σε Smartphone & Tablet (Android ή ios)... 1 3. Εγκατάσταση σε ηλεκτρονικό υπολογιστή (Windows ή Mac).... 5 4. Installation in Smartphone

Διαβάστε περισσότερα

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3 Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3 1 State vector space and the dual space Space of wavefunctions The space of wavefunctions is the set of all

Διαβάστε περισσότερα

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions SCHOOL OF MATHEMATICAL SCIENCES GLMA Linear Mathematics 00- Examination Solutions. (a) i. ( + 5i)( i) = (6 + 5) + (5 )i = + i. Real part is, imaginary part is. (b) ii. + 5i i ( + 5i)( + i) = ( i)( + i)

Διαβάστε περισσότερα

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

Διαβάστε περισσότερα

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 Το δίκτυο ARPANET ήταν ένα δίκτυο μεταγωγής πακέτων που χρηματοδοτήθηκε από το υπουργείο άμυνας των Η.Π.Α. στα τέλη της δεκαετίας του '60. 2 / 26 Από την αρχή κύριος

Διαβάστε περισσότερα