Che materia stai cercando?

Reti di Calcolatori corso completo (senza necessità di integrare materiale da fonti esterne, per superare l'esame con il migliore dei voti

Corso completo di Reti di calcolatori(Teoria + Esercizi Socket), studiabili senza alcuna integrazione da fonti esterne per superare l'esame con il migliore dei voti. Comprende:

1)teoria introduttiva su internet, livelli di protocolli (stack internet con la descrizione dei vari livelli) e accenni sulla sicurezza

2) livello applicazione:web e http, ftp, posta ewlettronica (smtp,imap,pop3),dns,sip

3)livello... Vedi di più

Esame di Reti di calcolatori docente Prof. M. Rak

Anteprima

ESTRATTO DOCUMENTO

Client.java

import java.io.*;

public class Client {

Socket mioSocket = null;

int porta= 7400;

DataInputStream in;

DataOutputStream out;

BufferedReader tastiera; //per acquisire il

messaggio che voglio inviare al server

public Socket connetti(){ //deve permetterci di

connetterci al server

try{

System.out.println("PROVO A CONNETTERMI AL

SERRVER....");

Socket mioSocket = new

Socket(InetAddress.getLocalHost(),porta); //uso classe

InetAddress con il metodo getLocalHost() per scrivere il

nome dell host che ospita il server(lo stesso host del

client) che dns traduce in ip,e il numero di porta,cosi

si connette a quel server con quell'IP e quel numero

porta System.out.println("CONNESSO!");

//PER POTER PARALRE COL SERVER DEVO APRIRE UN

FLUSSO DI INPUT COL SERVER e output

in = new

DataInputStream(mioSocket.getInputStream()); // creo

buffer per ricevere dati dalla socket

out = new

DataOutputStream(mioSocket.getOutputStream()); //creo

buffer per spedire dati sulla socket

//ricapitolando nella variabile mioSocket avremo

il socket che sta fra client e server cioè il canale

logico fra i due;da quel canale logico andioamo a

Page 1

Client.java

prendere i flussi di input e output e restituiamo tutto

quanto }catch(UnknownHostException e){ //gestisco

errore in caso non ci sono problemi per ricavare

quell'indirizzo ip con DNS

System.out.println("PROBLEMI:HOST

SCONOSCIUTO!");

}catch(Exception e){ //non ho messo

l'eccezione di IO ma ho messo generica per qualsiasi

problema sconosciuto diciamo che è impossibile gestire la

connessione System.err.println("ERRORE DAL

CLIENT!,impossibile stabilire la connessione!");

}

return mioSocket;

}

public void comunica(){

//devo mandare qualcosa al server e vedere cosa

ci risponde

try{ tastiera = new BufferedReader(new

InputStreamReader(System.in)); //scanner da

tastiera System.out.println("MESSAGGIO DA INVIARE AL

SERVER: "); String messaggio = tastiera.readLine();

//vado a leggere ciò che scriviamo da tastiera e salvo

nella Stringa messaggio

System.out.println("INVIO MESSAGGIO : " +

messaggio); out.writeBytes(messaggio + "\n "); //vado a

scrivere sul canale di output il contenuto della stringa

messaggio Page 2

Client.java

System.out.println("IN ATTESA DI UNA

RISPOSTA......");

//ora il server può andare a leggere ciò che

scriviamo dal canale di output,e ci invierà una risposta

sul canale di input

String ricevuto = in.readLine(); //ricevo il

messaggio del server dal canale di input e salvo nella

stringa ricevuto

System.out.println("LA RISPOSTA DEL SERVER è

CHE LA STRINGA CONTENEVA : " + ricevuto + " CARATTERI");

}catch(IOException e){

System.out.println("ERRORE!");

}

}

public static void main(String args[]){

Client c=new Client();

c.connetti();

c.comunica();

}

} Page 3

Server.java

import java.io.*;

public class Server {

ServerSocket server = null; //dichiaro socket del

server che all inizo finche non è stabilita connessione

non c'è ancora

Socket SocketClient = null;

int porta=7400; //deve essere superiore a 1023

e minore di 65535,è la porta del server,USO NUMERO A 4

CIFRE XKE SONO QUELLE NON USATE PER LE PORTE STANDARD

//devo simulare i flussi di richiesta e

risposta,dichiaro 2 oggetti stream,CIOè CREO 2 BUFFER PER

LA LETTURA E PER LA SCRITTURA

DataOutputStream out;

DataInputStream in; //questi due oggetti ci

permetteranno di fare richieste e avere risposte

//saranno gli oggetti

fondamentali della comunicazione

//creo il metodo per la connessione,CIOè DEVO

IMPLEMENTARE TUTTO CIò CHE FA tcp DENTRO L'OGGETTO SOCKET

public Socket attendi(){

try{

System.out.println("INIZIALIZZO IL

SERVER........");

server = new ServerSocket(porta); //

inizializziamo il servizio creando la socket

System.out.println("SERVER PRONTO,IN ASCOLTO

SULLA PORTA: " + porta); //HO CREATO lA SOCKET E ORA

POSSO METTERMI IN ATTESA

SocketClient = server.accept(); //ricevuta

richiesta connessione da un client,restituisce una

Page 1

Server.java

variabile di tipoo socket

System.out.println("IL SERVER HA STABILITO LA

CONNESSIONE CON IL CLIENT! ");

server.close(); //cosi evitiamo connessioni

multiple,impediamo ad altri computer di connettersi alla

nostra connessione,facciamo una connessione uno a

uno,cioe punto punto invece di una multicast , è una

scelta mia,cioe solo un client deve connnetersi al mio

server //apro gli stream di input eoutput per leggere e

scrivere nella connessione appena ricevuta

in=new

DataInputStream(SocketClient.getInputStream()); //creo

buffer per ricevere dati dalla socketclient

out = new

DataOutputStream(SocketClient.getOutputStream()); //ucreo

buffer per mandare dati sulla socket client

//ricordiamo TCP ha una comunicazione full

duplex,cioè entrambi possono leggere e scrivere,quindi ho

per entrambi(client server)buffer di ingresso e uscita

}catch(IOException e){

System.out.println("ERRORE!"); //ci

vuole il try catch perche ci possono essere errori vari

siccome parliamo di internet(problemi connessione,input

output,ecc),CIOè PROVO A FARE TUTTE QUESTE AZIONI CHE PER

VARI PROBLEMI POTREBBERO NON RIUSCIRE

}

return SocketClient; //restituiamo il socket del

client }

public void comunica(){

//il server dovrà mettersi in ascolto per

vedere se il client gli scrive qualcosa,ricevere ,

elaborare e rispedire

//so che il client scrive sullo stream di

input try{ Page 2

Server.java

System.out.println("ASPETTO UN MESSAGGIO

DAL CLIENT.....");

String lettura= in.readLine(); //LEGGO DALLO

STREAM DI INPUT e metto in una stringa

System.out.println("MESSAGGIO RICEVUTO: " +

lettura); int risposta = lettura.length(); //creo

intero di risposta col metodo della classe STRING che

contiene il numero di caratteri della stringa ricevuta

System.out.println("IL SERVER HA CALCOLATO IL

SEGUENTE NUMERO DI CARATTERI CHE COMPONGONO LA STRINGA: "

+ risposta);

out.writeBytes(risposta + "\n" ) ; //lo

scriviamo sullo stream di output,usiamo questo metodo che

prende una stringa come parametro ma ci vuola cnhe il

carattere terminatore,il client può andare a vedere

questo messaggio sullo stream di output

SocketClient.close();

System.out.println("SERVIZIO RICEVUTO! LA

CONNESSIONE Si è CHIUSA!");

}catch(IOException e){

System.out.println("ERRORE");

}

} public static void main(String[] args) {

Server s = new Server (); //creo istanza

server s.attendi(); //inizializzo server

e lo metto in scolto sulla sua porta che è la 6789

s.comunica();

}

} Page 3


PAGINE

87

PESO

29.44 MB

PUBBLICATO

5 mesi fa


DESCRIZIONE APPUNTO

Corso completo di Reti di calcolatori(Teoria + Esercizi Socket), studiabili senza alcuna integrazione da fonti esterne per superare l'esame con il migliore dei voti. Comprende:

1)teoria introduttiva su internet, livelli di protocolli (stack internet con la descrizione dei vari livelli) e accenni sulla sicurezza

2) livello applicazione:web e http, ftp, posta ewlettronica (smtp,imap,pop3),dns,sip

3)livello trasporto:servizi di livello trasporto, multiplexing e demultiplexing, UDP E TCP, principi di trasferimento dati affidabile con la costruzione di automi rdt

4) programmazione con le socket con un esempio funzionante testato di applicazione client server con le socket che usa il protocollo tcp

5)livello di rete: reti a datagramma e a circuito virtuale, router, protocollo IP, algoritmi instradamento con esercizi svolti, instradamento gerarchico, broadcast e multicast

6) livello link: tecniche rivelazione errori, protocolli di accesso multiplo::Slotted ALOHA, ALOHA puro, CSMA, PROtocolli a rotazione:POLLING, TOKEN PASSING, indirizzi a livello di collegamento (ARP e RARP),protocollo ethernet,switch a livello di collegamento

7)wireless e reti mobili , con architetture 2G E 3G E principi delle reti WIFI LAN.


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher matrix0909 di informazioni apprese con la frequenza delle lezioni di Reti di calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Seconda Università di Napoli SUN - Unina2 o del prof Rak Massimiliano.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in ingegneria informatica

Fondamenti di elettronica digitale teoria + esercizi (Materiale completo per l'esame)
Appunto
Laboratorio Automatica Matlab + Progetto filtri attivi con gli operazionali
Appunto
Misure elettroniche teoria + progetti labview
Appunto
Laboratorio di Sensori
Appunto