Laboratorio di TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
()
About this ebook
Related to Laboratorio di TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
Related ebooks
C# Programmazione per principianti Rating: 0 out of 5 stars0 ratingsIl protocollo eDonkey Rating: 0 out of 5 stars0 ratingsHigh Availability Per Lo Stack Lamp Rating: 0 out of 5 stars0 ratingsProgrammazione Python Per Principianti Rating: 0 out of 5 stars0 ratingsJavascript - 50 funzioni e tutorial Rating: 0 out of 5 stars0 ratingsProgrammazione in C | Passo dopo Passo: La guida semplice per i principianti Rating: 0 out of 5 stars0 ratingsFisica: dinamica 2 con Scratch: Esperimenti con Scratch sui moti oscillatori per mezzo di simulazioni numeriche. Rating: 0 out of 5 stars0 ratingsC++ Funzioni e tutorial 40 esempi Rating: 0 out of 5 stars0 ratingsIntroduzione pratica alla programmazione in C++ - Parte Prima Rating: 0 out of 5 stars0 ratingsPowerShell: Una Guida Completa: La collezione informatica Rating: 0 out of 5 stars0 ratingsInformatica Quantistica per Programmatori e Investitori: con implementazione completa degli algoritmi in C Rating: 0 out of 5 stars0 ratingsFisica: cinematica 2 con Scratch: Esperimenti con Scratch su moti vari e moti composti con il calcolo numerico Rating: 0 out of 5 stars0 ratingsProgrammare In Java Rating: 0 out of 5 stars0 ratingsCreare bot telegram - guida italiana Rating: 1 out of 5 stars1/5Test RIPAM di Informatica: Quesiti a risposta multipla di informatica tratti dalla banca dati del RIPAM Formez Rating: 0 out of 5 stars0 ratingsPython: Guida Completa alla Programmazione: La collezione informatica Rating: 0 out of 5 stars0 ratingsConcorso Regione Campania - i Test RIPAM Informatica: Quesiti a risposta multipla di informatica tratti dalla banca dati del RIPAM Rating: 0 out of 5 stars0 ratingsAmministrazione pratica di sistema Linux Rating: 0 out of 5 stars0 ratingsAutoCAD Electrical 2022 Black Book (Italian): AutoCAD Rating: 0 out of 5 stars0 ratingsFisica: dinamica 1 con Scratch: Esperimenti di fisica con Scratch sui moti con attrito con il calcolo numerico Rating: 0 out of 5 stars0 ratingsPHP Rating: 0 out of 5 stars0 ratingsCoding in R per l'analisi dati - da principiante a esperto Rating: 0 out of 5 stars0 ratingsFisica: cinematica 1 con Scratch: Esperimenti con Scratch sul moto con uso del calcolo numerico Rating: 0 out of 5 stars0 ratingsC++: Guida Completa al Linguaggio e alla Programmazione ad Oggetti. Contiene Esempi di Codice ed Esercizi Pratici Rating: 0 out of 5 stars0 ratingsJavascript: Un Manuale Per Imparare La Programmazione In Javascript Rating: 0 out of 5 stars0 ratingsLinux Per Principianti Rating: 0 out of 5 stars0 ratingsPROGRAMMARE IN C# 10 - Tecniche di base Rating: 0 out of 5 stars0 ratingsCreare una web survey. Guida pratica all'uso di LimeSurvey Rating: 0 out of 5 stars0 ratingsVba Se vi Piace 01 Rating: 0 out of 5 stars0 ratingsFondamenti di programmazione in C# 11 Rating: 0 out of 5 stars0 ratings
Computers For You
Lightroom 5 - Guida completa di tutte le novità Rating: 0 out of 5 stars0 ratingsBambini digitali: l'alterazione del pensiero creativo e il declino dell'empatia Rating: 0 out of 5 stars0 ratingsLa formattazione condizionale in Excel - Collana "I Quaderni di Excel Academy" Vol. 1 Rating: 5 out of 5 stars5/5Come guadagnare con la stampa 3D Rating: 0 out of 5 stars0 ratingsIl buio oltre il web: Dark web, deep web, fake news, controllo sociale, AI, virus e hacking Rating: 0 out of 5 stars0 ratingsUsa Excel come un professionista: Come muoversi con agilità e professionalità tra pagine, menu e strumenti di Excel Rating: 0 out of 5 stars0 ratingsIL NEUROMARKETING IN 7 RISPOSTE: che cos'è e come funziona Rating: 0 out of 5 stars0 ratingsPillole di Scacchi: primi passi Rating: 3 out of 5 stars3/5App Inventor 2 per esempi Rating: 1 out of 5 stars1/5Microsoft Excel 2016 - Corso base/intermedio Rating: 0 out of 5 stars0 ratingsPro Tools For Breakfast: Guida introduttiva al software più utilizzato negli studi di registrazione: Stefano Tumiati, #1 Rating: 0 out of 5 stars0 ratingsBlockchain: Capire Le Applicazioni Nel Mondo Reale: Come Applicare Blockchain Al Tuo Mondo Rating: 0 out of 5 stars0 ratingsTutti i segreti di Scrivener 3 per chi scrive Rating: 0 out of 5 stars0 ratingsProgrammare in Visual Basic (VB) Rating: 0 out of 5 stars0 ratingsMusicista 2.0: Come guadagnare scrivendo musica per venderla online Rating: 0 out of 5 stars0 ratingsPROGRAMMARE IN C# 10 - Tecniche di base Rating: 0 out of 5 stars0 ratingsSQLite, il database per tutti Rating: 0 out of 5 stars0 ratingsVba Se vi Piace 01 Rating: 0 out of 5 stars0 ratingsLinux Per Principianti Rating: 0 out of 5 stars0 ratingsVendere Online - Come Guadagnare Vendendo Su Ebay, Amazon, Fiverr & Etsy Rating: 0 out of 5 stars0 ratingsLa guida definitiva alla programmazione in Python per principianti e utenti intermedi Rating: 0 out of 5 stars0 ratingsMANUALE PER SCRITTORI 3.0 - La professione più ambita del Web: Trucchi e Segreti per scrivere da professionisti Rating: 0 out of 5 stars0 ratingsGuida a GIT Rating: 0 out of 5 stars0 ratingsProgrammatore in 3 Giorni: Guida Ipersintetica per Principianti Rating: 0 out of 5 stars0 ratings
Reviews for Laboratorio di TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
0 ratings0 reviews
Book preview
Laboratorio di TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI - Ombretta Caiti
Laboratorio di TECNOLOGIE E
PROGETTAZIONE DI SISTEMI
INFORMATICI E DI
TELECOMUNICAZIONI
Applicazioni di rete in JAVA
di Caiti Ombretta
1
© 2019 Ombretta Caiti
Professoressa e dottoressa in Ingegneria Informatica
Verona (ITALY)
caiti79@gmail.com
Tutti i diritti sono riservati.
E' pertanto vietata la riproduzione, l'archiviazione o la trasmissione, in qualsiasi forma e con qualsiasi mezzo, comprese la fotocopia e la digitalizzazione, senza l'autorizzazione scritta di Ombretta Caiti.
2
PREFAZIONE
Questo e-book nasce con lo scopo di raccogliere le esperienze di laboratorio di
Tecnologie e progettazione di sistemi informatici e di telecomunicazioni
sviluppabili il quinto anno degli Istituti di Scuola Secondaria Superiore ad indirizzo tecnico.
Questo e-book rappresenta una sorta di guida utile per l'insegnamento/apprendimento
della disciplina tecnica, mirato a fornire le basi della programmazione base di rete in linguaggio Java.
Si presta particolare attenzione ai requisiti base (software, librerie) utilizzati nello
svolgimento delle esercitazioni, alle procedure e al testing.
In particolare nella programmazione di applicazioni di rete con i socket si utilizza come
Java IDE Bluej, mentre nella programmazione di servlet, pagine .jsp e web service si utilizza come Java IDE Eclipse.
Lo scopo delle esercitazioni è prettamente didattico pertanto l’autrice di questo ebook declina ogni responsabilità che possa derivare da ogni eventuale danno per un uso professionale.
3
SOCKET IN JAVA
1. CONNESSIONE UNICAST CLIENT-SERVER VIA TCP, SERVER MONOTHREAD
2. CONNESSIONE CLIENT-SERVER VIA TCP, SERVER MULTITHREADED ON
DEMAND
3. CONNESSIONE CLIENT-SERVER VIA TCP, SERVER MINI CALCOLATORE
(SOMMA DI N NUMERI INTERI)
4. CONNESSIONE CLIENT-SERVER VIA TCP, SERVER MINI CALCOLATORE
(LE OPERAZIONI ARITMETICHE)
5. CONNESSIONE CLIENT-SERVER VIA UDP, TIME SERVER
6. COMUNICAZIONE MULTICAST VIA UDP
7. COMUNICAZIONE MULTICAST VIA UDP: VERSI DI UNA POESIA
8. COMUNICAZIONE TCP SERVER MULTITHREADED – SISTEMA DI
PRENOTAZIONI IN RETE
9. CONNESSIONE FTP CLIENT-SERVER - INDOVINA NUMERO
10. COMUNICAZIONE CLIENT-SERVER SOCKET UDP: OROSCOPI ON LINE
SERVLET JAVA con IDE ECLIPSE
JSP : JAVA SERVER PAGES
CONNESSIONE A MYSQL CON JSP
METODI CRUD: CREATE/INSERT, READ/SELECT, UPDATE, DELETE
JSP CON BEAN, ARRAYLIST E SELEZIONE DA HTML
WEB SERVICE
WEB SERVICE BASATO SU SOAP
WEB SERVICE RESTFUL CON JERSEY:
SERVER - WEB SERVICE RESTFUL
CLIENT - CALL RESTFUL API WEB SERVICE IN SERVLET
4
SOCKET IN JAVA
Tools di sviluppo, librerie e linguaggi di programmazione:
jdk1.8.0_211
jre1.8.0_211
JAVA
IDE
1.8
BLUEJ
1. CONNESSIONE UNICAST CLIENT-SERVER VIA TCP, SERVER MONOTHREAD
Figura 1: Modello di comunicazione client-server
Listato Server.java
// creazione di una connessione client-server via TCP
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args){
try{
// la classe ServerSocket deve essere istanziata passando come parametro
// il numero della porta su cui il server sarà in ascolto
ServerSocket ss=new ServerSocket(5678); //fuori dal range 1-1024
Socket s=ss.accept(); // il server rimane in attesa di un client
DataInputStream dis=new DataInputStream(s.getInputStream());
String str=(String)dis.readUTF(); // legge i caratteri del messaggio in input codificato con il formato modified UTF 8
System.out.println(Messaggio ricevuto dal server=
+str+ dalla socket del client
+s); ss.close(); //chiusura della connessione da parte del server
}catch(Exception e){System.out.println(e);}
}
}
5
Listato Client.java
// creazione di una connessione client-server via TCP
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try{
Socket s=new Socket(localhost
,5678); // creazione di un'istanza di socket
// creazione di un canale di comunicazione di output
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
dout.writeUTF(Ciao Server, ti invio il mio primo messaggio
);
// invio di caratteri codificati secondo il formato modified UTF 8 dal client al server dout.flush();
dout.close(); // chiusura del canale di output
s.close(); // chiusura del socket del client
}
catch(Exception e){ System.out.println(e);}
}
}
6
Figura 2: Invocazione metodo main della classe Server
Figura 3: Invocazione metodo main della classe Client
Figura 4: Output
7
2. CONNESSIONE CLIENT-SERVER VIA TCP, SERVER MULTITHREADED ON DEMAND
Viene creato un thread per ogni client al momento del a richiesta di connessione e viene
terminato al a chiusura del a comunicazione.
Figura 5: Modello di comunicazione un server - due client
8
Sono presenti 3 cartel e corrispondenti ad altrettanti progetti Bluej:
1) Server (Listato Server.java)
2) Client (Listato Client.java)
3) Client2 (Listato Client.java)
Listato Server.java
import java.io.*;
import java.net.*;
import java.util.*;
// Server multithreaded con schema on demand: il server è in grado di accettare richieste da più client contemporaneamente
public class Server extends Thread{
private ServerSocket Server;
private int count; // contatore del numero di connessioni
public static void main(String argv[]) throws Exception{
new Server();
}
public Server() throws Exception{
System.out.println(Il Server è in attesa sulla porta 4500.
);
// si crea un oggetto ServerSocket e lo si pone in ascolto sulla porta 4500
Server = new ServerSocket(4500);
// il metodo start
lancia il metodo run
della classe Server
this.start();
}
public void run(){
// ciclo infinito in cui il server è in attesa sulla porta 4500
while(true){
try {
System.out.println(1. Server in attesa di una richiesta di connessione da parte di un client.
);
// quando il server riceve una richiesta da parte di un client
// crea una nuova istanza di una Socket per quel client