Esercitazione [6] Client/Server con Socket
|
|
|
- Mariano Lombardi
- 10 anni fa
- Просмотров:
Транскрипт
1 Esercitazione [6] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica e Automatica A.A
2 Sommario Soluzione esercizio su TimeServer Obiettivi dell esercitazione Server socket Client socket Esercizio: EchoServer
3 Esercizio su TimeServer Scenario o Il server in ascolto su una porta nota o Il client si connette ed invia il messaggio «TIME» o Se il server riceve il messaggio atteso, risponde con ora e data correnti, altrimenti con un messaggio d errore Sorgenti: server.c e client.c Esercizio: completare le parti relative all invio/ricezione su socket Soluzione o Sia per il client che per il server, bisogna verificare che il valore di ritorno delle chiamate send/recv non sia negativo o Se è negativo ed errno corrisponde ad un interrupt, la chiamata va ripetuta
4 Obiettivi Esercitazione [6] Imparare ad impostare un applicazione client/server con o Server single-thread Come mettersi in ascolto su una porta nota? Come accettare una connessione da client? o Client Come connettersi ad un server in ascolto? o Semplice protocollo basato su messaggi testuali
5 Server Socket Come mettersi in ascolto su una porta nota? o Creazione socket - funzione socket() o Binding della socket su un indirizzo locale - funzione bind() o Infine mettersi in ascolto - funzione listen() Come accettare una connessione da client? o Attesa di una connessione - funzione accept() Una volta accettata una connessione, si ha disposizione un descrittore di socket da usare per scambiare messaggi (chiamate send()/recv()) o Una volta terminato lo scambio di messaggi, la connessione col client va chiusa - funzione close()
6 Strutture dati per le socket struct in_addr: rappresenta un indirizzo IP a 32 bit struct sockaddr_in: info di una socket, le principali sono: o Famiglia (sin_family) Per i nostri scopi, AF_INET: per il protocollo IPv4 Ne esistono altre, es: AF_UNIX, AF_BLUETOOTH o Indirizzo IP (sin_addr.s_addr), per i nostri scopi: Lato server, INADDR_ANY: in ascolto su tutte le interfacce Lato client, specifica l indirizzo IP del server o Numero porta (sin_port)
7 Funzione socket() int socket(int family, int type, int protocol); Crea una socket, ossia un endpoint di comunicazione Argomenti o family: per i nostri scopi, AF_INET (vedi struttura dati struct sockaddr_in) o type: per i nostri scopi, SOCK_STREAM (protocollo TCP) Ne esistono altre, es: SOCK_DGRAM (protocollo UDP) o protocol: per i nostri scopi, 0 Valore di ritorno o In caso di successo, il descrittore della socket o In caso di errore, -1
8 Funzione bind() int bind(int fd, const struct sockaddr *addr, socklen_t len); Assegna un indirizzo ad una socket Argomenti o fd: descrittore della socket (ritornato da socket()) o addr: puntatore ad una struttura dati che specifica l indirizzo Per i nostri scopi: la struttura struct sockaddr_in va castata a struct sockaddr o len: dimensione della struttura dati puntata da addr Valore di ritorno o In caso di successo, 0 o In caso di errore, -1
9 Funzione listen() int listen(int sockfd, int backlog); Marca la socket come passiva, ossia che può essere usata per accettare connessioni tramite la chiamata accept() Argomenti o sockfd: descrittore della socket (ritornato da socket()) o backlog: lunghezza massima della coda per le connessioni Se una connessione arriva quando la coda è piena, la connessione viene rifiutata Valore di ritorno o In caso di successo, 0 o In caso di errore, -1
10 Funzione accept() int accept(int fd,struct sockaddr *addr,socklen_t *len); Accetta una connessione su una socket in ascolto o È una chiamata bloccante: rimane in attesa di connessioni Argomenti o fd: descrittore della socket (ritornato da socket()) o addr: puntatore ad una struttura dati struct sockaddr che verrà riempita con le info della socket del client o len: puntatore ad un intero che verrà settato con la dimensione della struttura dati addr Valore di ritorno o In caso di successo, un descrittore per comunicare col client o In caso di errore, -1
11 Funzione close() int close(int fd); Nel caso fd sia un descrittore di socket, chiude la socket stessa o Successive chiamate read() dall altro capo ritorneranno 0 Argomenti o fd: descrittore della socket (ritornato da socket()) Valore di ritorno o In caso di successo, 0 o In caso di errore, -1
12 Client Socket Come connettersi ad un server in ascolto? o Creazione socket - funzione socket() o Connessione al server - funzione connect() o Una volta terminato lo scambio di messaggi, la connessione col client va chiusa - funzione close()
13 Funzione connect() int connect(int fd,const struct sockaddr *addr,socklen_t l); Tenta una connessione su una socket in ascolto Argomenti o fd: descrittore della socket (ritornato da socket()) o addr: puntatore ad una struttura dati struct sockaddr che descrive la socket alla quale connettersi (quella del server) o l: dimensione della struttura dati puntata da addr Valore di ritorno o In caso di successo, 0 o In caso di errore, -1
14 Protocollo con messaggi testuali Implementazione un protocollo client-server basato su messaggi di testo o Il server è in ascolto su una porta nota o Il client si connette al server o Inizia uno scambio di messaggi di testo secondo un pattern definito (protocollo) o Protocollo di base Il client invia una richiesta al server Il server riceve la richiesta, la elabora, produce una risposta Il server invia la risposta al client
15 Esercizio proposto: EchoServer Server single-thread in ascolto su una porta nota Il client si connette al server ed itera su queste operazioni o L utente inserisce da terminale un messaggio o Il client invia questo messaggio al server o Il server risponde con lo stesso messaggio ricevuto o Se il messaggio inviato dal client è «QUIT», termina Sorgenti: client.c e server.c Esercizio o Completare le parti mancanti, relative all invio/ricezione di messaggi via socket o Per l esecuzione, è necessario lanciare client e server su terminali diversi
Esercitazione [7] Client/Server con Socket
Esercitazione [7] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Federico Lombardi - [email protected] Sistemi di Calcolo - Secondo
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected]
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected] Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
Esercitazione [5] Input/Output su Socket
Esercitazione [5] Input/Output su Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo
Esercitazione [8] Pipe e FIFO
Esercitazione [8] Pipe e FIFO Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo
Socket TCP. prima parte
Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd
Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.
Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento
DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso
DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta
Reti (già Reti di Calcolatori )
Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare
I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina
M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura
Una semplice applicazione client/server 1
Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello
1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client
RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un
Creare una applicazione Winsock di base
Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare
Interazione (TCP) Client-Server con le socket
Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare
Esercizio 2. Client e server comunicano attraverso socket TCP
Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si
Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.
Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento
HTTP adaptation layer per generico protocollo di scambio dati
HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003
COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX
A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili
Paradigma client-server
Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con
rsystem Maximiliano Marchesi [email protected]
Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 [email protected] Sommario Introduzione..................................................................................
10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
IPC Inter Process Communication
Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni
Telematica II 12. Esercitazione/Laboratorio 4
Server UDP in JAVA Telematica II 12. Esercitazione/Laboratorio 4 DayTime daemon UDP Port 13 obiettivo realizzazione di un servizio per l invio della data/orario del server al client utilizzo di un datagram
Socket TCP. seconda parte
Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)
Introduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
Programmazione dei socket con TCP #2
I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket
Socket & RMI Ingegneria del Software - San Pietro
Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la
I/O su Socket TCP: read()
I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una
INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.
Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 Dynamic Host Configuration Protocol [email protected] Prima di iniziare... Gli indirizzi IP privati possono essere
Socket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...
Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad
2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
Laboratorio di Programmazione in Rete
Laboratorio di rogrammazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi [email protected] Orario di ricevimento: mercoledì ore 10-12
Reti di Telecomunicazione Lezione 8
Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica [email protected] Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato
Altri tipi di connessione
Altri tipi di connessione Francesca Martelli [email protected] Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo
appunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
Gestione degli indirizzi
Politecnico di Milano Facoltà di Ingegneria dell Informazione Gestione degli indirizzi -Address Resolution Protocol (ARP) -Reverse Address Resolution Protocol (RARP) -Dynamic Host Configuration Protocol
Controllo Winsock di Visual Basic
Controllo Winsock di Visual Basic Il controllo Winsock, non visibile all'utente, consente di accedere ai servizi di rete TCP e UDP. Per creare applicazioni client o server non è necessario conoscere in
Reti di Telecomunicazione Lezione 7
Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica [email protected] Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione
Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning
Sicurezza dei sistemi e delle 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia [email protected] Port Lezione V: Scansioni Port a.a. 2015/16 1 cba 2011 15 M.. Creative Commons
UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing
a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta [email protected]
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:
L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio
L uso di Socket UDP Usiamo le API Winsock incluse in A.A. 2005/06 TCP TCP vs. UDP UDP Interazione UDP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local
Impostazione dell'indirizzo IP del dispositivo di autenticazione di Xerox Secure Access Unified ID System Carta bianca
Impostazione dell'indirizzo IP del dispositivo di autenticazione di Xerox Secure Access Unified ID System Copyright 2007 Xerox Corporation. Tutti i diritti riservati. XEROX e Secure Access Unified ID System
Inizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
Gestione degli indirizzi
Politecnico di Milano Advanced Network Technologies Laboratory Gestione degli indirizzi - Address Resolution Protocol (ARP) - Reverse Address Resolution Protocol (RARP) - Dynamic Host Configuration Protocol
L interfaccia socket
L interfaccia socket Application Programming Interface: API Socket API Procedure base Altre procedure Ordinamento dei byte Interazione client-server orientata alla connessione Interazione client-server
Transmission Control Protocol
Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server
Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette
PIANO DI LAVORO A.S. 2015/16
Istituto Tecnico Industriale Leonardo Da Vinci con sez. Commerciale annessa Borgomanero (NO) PIANO DI LAVORO A.S. 2015/16 Materia: Tecnologie e progettazione di sistemi informatici e di telecomunicazioni
Networking. Mauro Migliardi Ph. D.
Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the
Interazione (TCP) Client-Server con le socket
Interazione (TCP) Client-Server con le socket Interazione TCP Client/Server Server 1. Creare una socket 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a.
Sistemi Operativi: Programmazione di Sistema
Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: [email protected] telefono: 055 4237454
Lo scenario: la definizione di Internet
1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)
P2-11: BOOTP e DHCP (Capitolo 23)
Autunno 2002 Prof. Roberto De Prisco -11: BOOTP e DHCP (Capitolo 23) Università degli studi di Salerno Laurea e Diploma in Informatica Indirizzi IP dinamici 11.2 Un indirizzo IP statico è assegnato ad
Esempio 1: stampa locale di file remoto
Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente
