Categories: Java

Comunicazioni di Rete con i Socket Java

Il grande successo di Java è dovuto alla semplicità di programmazione, alla possibilità di creare applicazioni multipiattaforma e ad un insieme di librerie che consentono di creare facilmente applicazioni di rete. Combinando infatti gli oggetti dei package java.net e java.io è possibile usufruire ad un alto livello di astrazione, di metodi e classi che ci svincolano dalla conoscenza approfondita delle comunicazioni di rete tra computer. In questa nostra lezione faremo il nostro primo approccio al mondo del networking spiegando come creare un socket per la comunicazione tra client e server.
Un socket ( calzino ) è un’astrazione software progettata per poter utilizzare le API e creare un canale di comunicazione tra due computer sulla rete, all’interno di questo canale facciamo fluire i dati attraverso uno stream. In Java esiste una classe con i suoi metodi che si occupa di tutto questo, il suo nome è Socket presente nel package java.net.
Per creare un Socket ed aprire la connessione ad un computer, possiamo utilizzare direttamente il costruttore nel quale inserire il nome del server e la porta di comunicazione, mentre i metodi principali della classe sono:

  • connect – consente di collegarsi ad un server attraverso un SocketAddress, che è una classe astratta che consente la connessione senza protocollo.
  • getInetAddress – ritorna l’indirizzo a cui il socket è connesso.
  • getLocalAddress – ritorna l’indirizzo locale al quale il socket è collegato.
  • getPort – ritorna il numero della porta al quale il socket è connesso.
  • getLocalPort – ritorna il numero della porta locale alla quale il socket è connesso.
  • getInputStream – ritorna un oggetto di tipo InputStream collegato al socket.
  • getOutputStream – ritorna un oggetto di tipo OutputStream collegato al socket.
  • close – chiude la connessione del socket

Vediamo ora un esempio nel quale faremo una richiesta a caso al server yahoo.it, ovviamente ci arriverà un errore perché abbiamo inviato una richiesta sbagliata, infatti l’esempio serve solo per mostrare come si effettua una connessione tramite socket in Java:

import java.io.*;
import java.net.*;

public class Main
{
   public static void main(String[] args)
   {
      Socket s = null;
      InputStream is = null;
      OutputStream os = null;
      int c;

      try
      {
         s = new Socket("www.yahoo.it", 80);
         is = s.getInputStream();
         os = s.getOutputStream();

         String str = "aaa\n";
         byte buf[] = str.getBytes();
         os.write(buf);
         str = "";
         while ((c = is.read()) != -1)
            str += (char)c;
         System.out.println(str);
         s.close();
      }
     catch (Exception e)
     {
         System.out.println("Errore: " + e.getMessage());
     }
   }
}

Con questo è tutto riguardo alla programmazione base in Java, da qui in poi dovrete fare da soli, ma non preoccupatevi, in questo blog troverete sempre esempi di codice semplice ed intuitivo, sempre spiegato nei minimi dettagli, per farvi imparare a programmare in Java.

<<Lezione PrecedenteInizio Corso

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago