Server e CLient HTTP con NODE

PREREQUISITI/OPERAZIONI PRELIMINARI


  1. Avere o Installare JDK

  2. Avere o installare NODEJS / o in alternativa sfruttare REPLIT.COM

  3. Avere o installare Visual Studio Code o altro IDE

  4. 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