I computer per comunicare tra loro attraverso internet/intranet usano i protocolli di 4 livello TCP e UDP.
TCP e un protocollo basato sulla connessione che fornisce un flusso di dati affidabile tra 2 computer (usato da http, ftp, telnet).
UDP e un protocollo che unisce pacchetti di dati indipendenti (detti datagram) da un computer ad un altro senza garanzia che i pacchetti arrivino a destinazione o che arrivino in ordine.
Generalmente un computer ha una sola connessione fisica alla rete, quindi per usare contemporaneamente piu applicazioni si usano le "porte".
I dati trasmessi attraverso internet verranno quindi accompagnati oltre che dallindirizzo IP anche dalla porta a cui sui destinati (16bit).
Passi per interagire con uno script cgi-bin lato server
1- Creare un url
2 - Aprire una connessione allurl
3 - Scrivere all output
4 - Chiudere loutput stream
URL = Uniform Resource Location e un riferimento ad una risorsa su internet
Stringa per creare un nuovo oggetto url
url gamelan = new URL ("http://www.gamelan.com/");
Puo essere anche relativa:
url gamelanNetwork = new URL (gamelan, "gamelan.network.html");
Se si vuole specificare anche la porta:
url gamelan = new URL ("http","www.gamelan.com",80,"/gamelan.network.html);
Ciascun url ottiene un MalformedURLException se largomento del costruttore e errato o si riferisce ad un protocollo sconosciuto.
Per catturare questa accezione:
try {
URL myURL = new URL(...);
} catch (MalformedURLException e) {
.....
}
getProtocol() = restituisce il protocollo delloggetto URL
getHost() = restituisce il nome della macchina oggetto dellURL
getPort() = restituisce il numero di porta (intero) o -1 se non settato
getFile() = restituisce il pathname del dile
getRef() = restituisce un nome di anchor (una specifica locazione dentro un file)
[es. ParseURL nella pagina urlinfo.html]
Dopo aver creato un URL, si puo chiamare il metodo openStream() per ricevere un flusso da cui si puo leggere il contenuto dellURL.
[es. OpenStreamTest.java nella pagina readingurl.html]
Dopo aver creato un URL, si puo chiamare il metodo openConnection() per connettersi.
try {
URL yahoo = new URL("http://www.yahoo.com");
yahoo.openConnection()}
catch (MalformedURLException e) {
.... }
catch (IOException) {
.......}
Una volta connesso allURL si puo usare loggetto URLConnection per azioni come leggere o scrivere ad una connessione.
Per applicazioni client-server, come interrogazioni di database, i socket forniscono un link di comunicazione tra i 2 programmi (lato client e lato server) sulla rete.
Le classi Socket e ServerSocket del package java.net forniscono un canale di comunicazione usando TCP (e quindi affidabile).
Funzioni principali del programma:
1 - aprire un socket
2 - aprire un inputStream e un outputStream
3 - leggere e scrivere nello stream
4 - chiudere lo stream
5 - chiudere il socket
Usato per quelle applicazioni che non richiedono un canale affidabile (come invece implementa il TCP) implementando cosiuna comunicazione usando lUDP.
Il package java.net contiene 2 classi che permettono di usare datagrammi DatagramSocket e DatagramPocket.