Programmazione in Java (9) Mauro Lorenzutti. 30/09/2005Corso Java - Mauro Lorenzutti2 Scaletta I/O Evoluto Serializzazione Comunicazioni via socket JUnit.

Slides:



Advertisements
Presentazioni simili
Gestione di un Sistema di Talk multiutente
Advertisements

INFORMATICA Altre Istruzioni di I/O
IL PACKAGE java.io Il package java.io definisce quattro
Socket Java Alberto Ferrari.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
26/11/2004Laboratorio di Programmazione - Luca Tesei1 Input/Output Redirecting, scomposizione dellinput, uso di file.
Programmazione Ingegneria TLC
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Come programmare servizi di rete?
Programmazione in Java (3)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
File.
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione al linguaggio Java
Introduzione agli stream e alle classi
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Scomposizione di stringhe
Soluzione Esercizio - Classe Vettore
Ingegneria del software I
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Docente: Gabriele Lombardi
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Java Serialization.
Programmazione distribuita in Java
I File.
JAVA E LA RETE L’architettura Java è network-ready
Corso di PHP.
Programmazione in Java
Programmazione in Java (8)
Cosa è una applicazione distribuita?
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso di Programmazione in Java – Esercizio n° 001
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
ESERCITAZIONE 12 ESERCIZIO 2 14/05/2014. Consegne 1/4 Definire la classe MyBufferedReader che estende la classe BufferedReader, implementando il metodo.
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Input-Output 16 Maggio Nei programmi sviluppati sino ad oggi abbiamo usato * output su schermo (con System.out.print e System.out.print ) * input.
Sistemi di elaborazione dell’informazione Modulo 4 - Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione 8.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione può.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione puo’
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Transcript della presentazione:

Programmazione in Java (9) Mauro Lorenzutti

30/09/2005Corso Java - Mauro Lorenzutti2 Scaletta I/O Evoluto Serializzazione Comunicazioni via socket JUnit

30/09/2005Corso Java - Mauro Lorenzutti3 I/O Progettare e implementare una gerarchia di classi per astrarre il device di I/O per la classe Persona Input da: Tastiera File Output su Video File

30/09/2005Corso Java - Mauro Lorenzutti4 Serializzazione Perché Concetti base Un po di codice Esercizio

30/09/2005Corso Java - Mauro Lorenzutti5 Persistenza degli oggetti Quando un programma termina tutti gli oggetti muoiono con lui Serve un meccanismo per salvare gli oggetti per farli vivere indipendentemente dal programma che li ha generati Questo fenomeno è detto persistenza degli oggetti

30/09/2005Corso Java - Mauro Lorenzutti6 Serializzazione Per ottenere la persistenza degli oggetti si può codificarli in un file e poi leggerli molto scomodo Si può serializzarli e scriverli in un file o inviarli attraverso la rete Serializzare un oggetto vuol dire rappresentarlo come una sequenza di byte Questa rappresentazione in byte può essere usata per ricostruire loggetto

30/09/2005Corso Java - Mauro Lorenzutti7 Serializzare su file FileOutputStream fos = new FileOutputStream(nomefile); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(oggetto);

30/09/2005Corso Java - Mauro Lorenzutti8 De-serializzare da file Il processo inverso: da un flusso di byte ricostruire loggetto originale FileInputStream fis = new FileInputStream(nomefile); ObjectInputStream ois = new ObjectInputStream(fis); TipoOggetto oggetto = (TipoOggetto)ois.readObject();

30/09/2005Corso Java - Mauro Lorenzutti9 Attenzione! Loggetto da serializzare e tutti i suoi attributi devono essere predisposti alla serializzazione public class Persona implements Serializable{ private static final long serialVersionUID = 1L;

30/09/2005Corso Java - Mauro Lorenzutti10 Escludere dal flusso È possibile in certi casi avere la necessità di escludere una variabile dal flusso di byte private transient String password;

30/09/2005Corso Java - Mauro Lorenzutti11 Esercizio Estendere la gerarchia di I/O per includere una classe che permetta il salvataggio su file di dati serializzati e la successiva lettura e ricostruzione di questi

30/09/2005Corso Java - Mauro Lorenzutti12 Comunicazione via socket Introduzione Socket ServerSocket Esercizio

30/09/2005Corso Java - Mauro Lorenzutti13 Comunicazioni in rete Far comunicare due programmi distinti attraverso una connessione di rete Socket È un ponte per comunicare È associata a un host e una porta

30/09/2005Corso Java - Mauro Lorenzutti14 Socket 1/4 Java mette a disposizione la classe Socket (socket client) per aprire un canale è necessario specificare host e porta Socket s = new Socket(localhost, 1555); Attenzione: le porte fra 0 e 1023 sono riservate

30/09/2005Corso Java - Mauro Lorenzutti15 Socket 2/4 È necessario specificare un timeout entro il quale i dati possono essere letti s.setSoTimeOut(30000); Allo scadere viene generata uneccezione InterruptedIOException

30/09/2005Corso Java - Mauro Lorenzutti16 Socket 3/4 Ora è possibile usare la socket per inviare e ricevere dati PrintStream out = new PrintStream(s.getOutputStream()); out.print(Stringa da inviare); BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream())); boolean eof = false; while(!eof) { String riga = r.readLine(); if (riga!=null) System.out.println(riga); else eof = true; }

30/09/2005Corso Java - Mauro Lorenzutti17 Socket 4/4 Al termine è buona regola chiudere la connessione s.close();

30/09/2005Corso Java - Mauro Lorenzutti18 ServerSocket 1/2 Sono i socket lato server Un socket lato server controlla una porta TCP e avverte i tentativi di connessione da parte dei client Java mette a disposizione la classe ServerSocket

30/09/2005Corso Java - Mauro Lorenzutti19 ServerSocket 2/2 Le connessioni da parte dei client vengono accettate attraverso il metodo accept() Questo metodo restituisce un Socket per gestire la comunicazione ServerSocket server = new ServerSocket(1555); Server client = server.accept();

30/09/2005Corso Java - Mauro Lorenzutti20 Socket e serializzazione Anche in questo caso la serializzazione è molto comoda per permettere a due applicazioni lo scambio di oggetti via socket ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream()); oos.writeObject(p); ObjectInputStream ois = new ObjectInputStream(connection.getInputStream()); Persona p = (Persona)ois.readObject();

30/09/2005Corso Java - Mauro Lorenzutti21 Esercizio Estendere la classe IOEvoluto per gestire la comunicazione via socket degli oggetti di tipo persona