Server e CLient HTTP con NODE
PREREQUISITI/OPERAZIONI PRELIMINARI
Avere o Installare JDK
Avere o installare NODEJS / o in alternativa sfruttare REPLIT.COM
Avere o installare Visual Studio Code o altro IDE
Eseguire un server standard HTTP sulla porta 8080 che risponda alla chiamata della HOMEPAGE (vedi seconda parte)
CODICE CLIENT IN JAVA
import java.io.*;
import java.net.*;
public class TCPClient {
String nomeServer ="localhost"; // indirizzo server locale
int portaServer = 8080; // porta x servizio data e ora
Socket miosocket;
BufferedReader tastiera; // buffer per l'input da tastiera
String stringaUtente; // stringa inserita da utente
String stringaRicevutaDalServer; // stringa ricevuta dal server
DataOutputStream outVersoServer; // stream di output
BufferedReader inDalServer; // stream di input
public void comunica() {
try // leggo una riga
{
System.out.println("4 ... inserisci la stringa da trasmettere al server:"+'\n');
stringaUtente = "GET ERRATA";
stringaUtente = "GET / HTTP/1.1\r\nHost:127.0.0.1\r\n";
//stringaUtente = "GET / HTTP/1.1" +'\n'+"Host: localhost:8080";
//la spedisco al server
System.out.println("5 ... invio la stringa al server e attendo ...");
//outVersoServer.writeBytes( stringaUtente +"\r\n");
outVersoServer.writeBytes( stringaUtente);
//leggo la risposta dal server
System.out.println("8 ... risposta dal server ");
while((stringaRicevutaDalServer = inDalServer.readLine()) != null){
System.out.println(stringaRicevutaDalServer);
}
//stringaRicevutaDalServer=inDalServer.readLine();
// chiudo la connessione
System.out.println("9 CLIENT: termina elaborazione e chiude connessione" );
miosocket.close();
}
catch (Exception e)
{
System.out.println(e.getMessage());
System.out.println("Errore durante la comunicazione col server!");
System.exit(1);
}
}
public Socket connetti(){
System.out.println("2 CLIENT partito in esecuzione ...");
try
{
// per l'input da tastiera
tastiera = new BufferedReader(new InputStreamReader(System.in));
// creo un socket
miosocket = new Socket(nomeServer,portaServer);
// miosocket = new Socket(InetAddress.getLocalHost(), 6789);
// associo due oggetti al socket per effettuare la scrittura e la lettura
outVersoServer = new DataOutputStream(miosocket.getOutputStream());
inDalServer = new BufferedReader(new InputStreamReader (miosocket.getInputStream()));
}
catch (UnknownHostException e){
System.err.println("Host sconosciuto"); }
catch (Exception e)
{
System.out.println(e.getMessage());
System.out.println("Errore durante la connessione!");
System.exit(1);
}
return miosocket;
}
public static void main(String args[]) {
TCPClient cliente = new TCPClient();
cliente.connetti();
cliente.comunica();
}
}
CODICE SERVER JAVASCRIPT
const http = require('http');
const requestListener = function (req, res) {
console.log("Request arrived: " + req.method);
res.writeHead(200);
res.end('Hello, World!');
}0
const server = http.createServer(requestListener);
server.listen(8080);
OPERAZIONI PER FAR FUNZIONARE IL CODICE
Installare pacchetto HTTTP -> npm install http
Lanciare il file con --> node nomefile.js
RISPOSTE IN CONSOLE ATTESE