Socket TCP. prima parte
|
|
|
- Donata Carella
- 10 anni fa
- Просмотров:
Транскрипт
1 Socket TCP prima parte
2 Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd<0) perror( socket ), exit(1); 2
3 Cosa cambia: bind/connect Va specificato un indirizzo TCP/IP! 3
4 Indirizzi TCP/IP Identificati da: 1) un indirizzo IP (intero a 32 bit, es ) 2) una porta (intero a 16 bit, da 0 a 65535) Porte: per offrire diversi servizi dallo stesso indirizzo IP da 0 a 1023: porte riservate (ai processi di root) da 5000 a 32768: porte utente altre: porte effimere (per i client, ai quali non interessa scegliere una porta specifica) 4
5 Esempi di porte riservate 21 ftp (trasferimento file) 22 ssh (login remoto sicuro) 25 smtp (invio ) 79 finger (informazioni sugli utenti) 80 http (web) 143 imap (lettura ) Lista ufficiale su: 5
6 Indirizzi TCP/IP in netinet/ip.h: struct sockaddr_in { sa_family_t sin_family; u_int16_t sin_port; struct in_addr sin_addr; }; struct in_addr { u_int32_t s_addr; }; vedere: man 7 ip AF_INET porta, in network order indirizzo IP, in network order 6
7 Ordine dei byte Come viene memorizzato un intero in memoria? sono usati 4 bytes consideriamo 65537, cioè , all'indirizzo 100 codifica Big Endian (prima il byte più significativo): codifica Little Endian (prima il byte meno significativo):
8 Ordine dei byte i processori possono essere di uno dei due tipi ad es., i processori x86 sono little endian i protocolli TCP/IP lavorano con big endian sono necessarie funzioni di conversione conversioni tra unsigned: #include <netinet/in.h> uint32_t htonl(uint32_t x) uint16_t htons(uint16_t x) h n l s = Host = Network (big endian) = Long (4 bytes) = Short (2 bytes) uint32_t ntohl(uint32_t x) uint16_t ntohs(uint16_t x) 8
9 Specificare indirizzi IP Usando la notazione dotted (puntata) struct sockaddr_in indirizzo; if (inet_aton( , &indirizzo.sin_addr) == 0) perror( inet_aton ), exit(1); inet_aton (ascii to network) riempie direttamente una struttura in_addr restituisce 0 in caso di errore! 9
10 Indirizzi TCP/IP per il server (bind) Il server chiama bind per stabilire su quale indirizzo mettersi in ascolto Di solito, il server sceglie solo la porta Come indirizzo IP, sceglie INADDR_ANY, così accetta connessioni dirette a qualunque indirizzo (uno stesso host può avere più indirizzi IP) struct sockaddr_in mio_indirizzo; mio_indirizzo.sin_family = AF_INET; mio_indirizzo.sin_port = htons(5200); mio_indirizzo.sin_addr.s_addr = htonl(inaddr_any); bind(fd, (struct sockaddr *) &mio_indirizzo, sizeof(mio_indirizzo)); 10
11 Indirizzi TCP/IP per il client (connect) Il client deve conoscere l'indirizzo IP e la porta del processo server struct sockaddr_in indirizzo; indirizzo.sin_family = AF_INET; indirizzo.sin_port = htons(5200); inet_aton( , &indirizzo.sin_addr); connect(fd, (struct sockaddr *) &indirizzo, sizeof(indirizzo)); 11
12 Schema della connessione Computer indirizzo I1 indirizzo I2 Computer porta socket porta 5200 socket processo client processo server socket(...) connect(i2) socket(...) bind(i2) listen(...) accept(...) 12
13 Cosa cambia: listen e accept Non cambia quasi niente accept adesso prende l'indirizzo di una struttura di tipo sockaddr_in, dopo un opportuno cast struct sockaddr_in indirizzo_client; socklen_t client_size = sizeof(indirizzo_client); fd2 = accept(fd1, (struct sockaddr *)&indirizzo_client, &client_size); 13
14 Esercizio 1 Modificare l'esercizio 1 dei socket locali, in modo che usi socket TCP Il server si mette in ascolto su una porta utente, scelta da voi arbitrariamente (sperando che ogni gruppo scelga una porta diversa) L'utente indica al client l'indirizzo IP e la porta alla quale connettersi, usando due argomenti da linea di comando (cioè:./client ) Provare a lanciare il server su Infserv64 e il client su Infserv64bio 14
15 Esercizio 2 Modificare l'esercizio precedente in modo che, invece di fornire solo l'ora, il server fornisca due diversi servizi: se il client invia il carattere H, il server fornisce l'ora corrente, come faceva prima se il client invia il carattere P, il server fornisce il suo pid 15
16 Opzioni dei socket int getsockopt(int fd, level, option, void *val, socklen_t len); int setsockopt(int fd, level, option, void *val, socklen_t *len); leggono e scrivono le opzioni di un socket le opzioni si dividono in livelli, identificati da apposite costanti livelli: livello socket SOL_SOCKET livello TCP livello IP IPPROTO_TCP IPPROTO_IP il significato di val dipende dall'opzione len è pari alla dimensione dell'oggetto puntato da val restituiscono: 0 se OK, -1 altrimenti (e impostano errno) 16
17 Opzione SO_REUSEADDR int getsockopt(int fd, level, option, void *val, socklen_t len); int setsockopt(int fd, level, option, void *val, socklen_t *len); opzione di livello socket permette a bind di assegnare un indirizzo ancora occupato val deve puntare ad un intero se l'intero è diverso da zero, questa opzione è attiva se l'intero puntato contiene zero, l'opzione è inattiva len è pari a sizeof(int) 17
18 Opzioni SO_SNDTIMEO, SO_RCVTIMEO int getsockopt(int fd, level, option, void *val, socklen_t len); int setsockopt(int fd, level, option, void *val, socklen_t *len); opzioni di livello socket impostano un timeout per le operazioni di lettura/scrittura terminato il timeout, le operazioni di lettura/scrittura vengono interrotte con valore di ritorno negativo (errore) e errno == EWOULDBLOCK 18
19 Opzioni SO_SNDTIMEO, SO_RCVTIMEO int getsockopt(int fd, level, option, void *val, socklen_t len); int setsockopt(int fd, level, option, void *val, socklen_t *len); val deve puntare ad una struttura timeval struct timeval { time_t tv_sec; /* seconds */ long tv_usec; /* microseconds */ } len è pari a sizeof(timeval) i timeout si annullano impostando un nuovo timeout di zero secondi e zero microsecondi 19
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(...)
Esercitazione [6] Client/Server con Socket
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
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
INTERNET DOMAIN SOCKETS (Cap.59)
INTERNET DOMAIN SOCKETS (Cap.59) Internet Domain Stream Socket TCP Internet Domain Datagram Socket UDP A differenza degli UDDS I datagrams possono essere persi duplicati o arrivare in un ordine diverso
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
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
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
Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte -
Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC) - - 2 Parte - 1 Sommario Comunicazione tra processi su macchine diverse in rete: Socket TCP o Socket Stream
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
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
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
Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni
a.a. 2003/04 Opzioni del Socket Socket Options Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Ogni socket
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
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
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
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
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
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
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
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.
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
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
rsystem Maximiliano Marchesi [email protected]
Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 [email protected] Sommario Introduzione..................................................................................
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
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
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
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
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
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
Le variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
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
Informatica per la comunicazione" - lezione 8 -
Informatica per la comunicazione - lezione 8 - I multipli 1 KB (kilo) = 1000 B 1 MB (mega) = 1 mln B 1 GB (giga) = 1 mld B 1 TB (tera) = 1000 mld B Codifica binaria dei numeri Numerazione con base 10:
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
Indice. Recupero CDDB
Mike McBride Jonathan Singer David White Sviluppatore: Bernd Johannes Wübben Sviluppatore: Dirk Försterling Sviluppatore: Dirk Försterling Revisore: Lauri Watts Traduzione italiana: Giorgio Moscardi Manutenzione
Socket API per il Multicast
Socket API per il Multicast Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/
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
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
Modulo 1.3 Reti e servizi
Modulo 1.3 Reti e servizi 1. Introduzione al Networking Connettere il PC in rete; schede di rete e modem; Panoramica sulle reti ad alta velocita' e reti dial-up; Testare la connettivita' con ping; Introduzione
TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE
Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su
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
Reti di Telecomunicazione Lezione 6
Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica [email protected] Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server
Dopo aver installato WSFTP.le, alla prima schermata quando lo apriamo vedremo questo.
Dopo aver installato WSFTP.le, alla prima schermata quando lo apriamo vedremo questo. clicchiamo su Continue nella finestra successiva, spuntiamo la voce Other e clicchiamo su Next Nella terza schermata
InterNet: rete di reti
Internet e il web: introduzione rapida 1 InterNet: rete di reti Una rete è costituita da diversi computer collegati fra di loro allo scopo di: Comunicare Condividere risorse Ogni computer della rete può,
Guida all' uso dei sockets nella programmazione in C
Guida all' uso dei sockets nella programmazione in C ( pseudo-traduzione personalizzata di "Beej's Guide to Network Programming" ) (Prima parte) INTRODUZIONE Finalmente ho trovato una guida chiara e semplice
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
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
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
Il tuo manuale d'uso. SONY ERICSSON Z550I http://it.yourpdfguides.com/dref/452389
Può anche leggere le raccomandazioni fatte nel manuale d uso, nel manuale tecnico o nella guida di installazione di SONY ERICSSON Z550I. Troverà le risposte a tutte sue domande sul manuale d'uso (informazioni,
Inter-process communication: socket
Le Socket Inter-process communication: socket Abbiamo visti alcune tipologie di Inter-process communication: Anonymous pipes FIFOs o named pipes Le socket di comunicazione si pongono nell'ipc per realizzare:
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
FTP. studioand CORTILE DEL MAGLIO. manuale per la configurazione dell accesso FTP. Via Andreis, 18/10 10152 Torino (To)
manuale per la configurazione dell accesso FTP studioand CORTILE DEL MAGLIO Via Andreis, 18/10 10152 Torino (To) tel. 011 4363313 fax 011 3716769 www.studioand.it [email protected] FTP è l acronimo di
Configurazione di Microsoft Outlook 2007
26.07.2014 Configurazione di Microsoft Outlook 2007 Nelle pagine che seguono faremo riferimento all indirizzo email ed alla nuova password che vi è stata assegnata da Poloest (rete telematica della Provincia
12.5 UDP (User Datagram Protocol)
CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Creare un'elementare backdoor in C in ambiente UNIX
Creare un'elementare backdoor in C in ambiente UNIX DISCLAIMER: Questo tutorial è a solo scopo didattico. L'autore NON si prende alcuna responsabilità circa usi errati o non legali delle informazioni qui
Protocolli applicativi: FTP
Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione
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)
Dal protocollo IP ai livelli superiori
Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono
IPC System V. Code di messaggi
IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile
