Giter Site home page Giter Site logo

programmazione-in-rete-con-java's Introduction

Programmazione in rete con Java

In questa repo si discoutono le idee generali per poter mettere in pratica la programmazione in rete con Java attraverso l'utilizzo dell'approccio client-server (con i relativi Socket) e l'utilizzo pratico

  • di un servizio privo di connessione con UDP
  • di un servizio orientato alla connessione basato sullo streaming di un flusso di dati con TCP

1. Introduzione

Oggigiorno abbiamo a che fare con dispositivi che appartengo alla tassonomia MIMD il quale prevede l'esecuzione di più flussi di istruzione su più flussi di dati. A questo scopo è utile dire che con l'evoluzione dei calcolatori, abbiamo avuto la possibilità di poter realizzare (attraverso questa tassonomia)

  • sistemi multicomputer, i quali ognuno di essi è connesso per poter cooperare in un risultato finale
  • sistemi multiprocessore, i quali hanno più CPU (o meglio detti core) che operano in modo distribuito per poter ottnere un risultato.

e unificando questi due concetti, possiamo affermare con certezza che, indipendentemente dallo scopo, una rete di calcolatori è un sistema multicomputer e multiprocessore che lavora in modo distribuito su più flussi di dati.

1.2 Indirizzi IP e numeri di porta

Su questo presupposto, quindi, la programmazione di rete comporta l'utilizzo (oltre che l'uso degli indirizzi IP) dei numeri di porta. Precisiamo il loro scopo

  • un indirizzo IP identifica in modo univoco la posizione esatta del dispositivo (o in gergo tecnico Host) all'interno della rete. Ciò implica che se il dispositivo cambia la sua disposizione in rete, cambierà anche il suo indirizzo IP
  • un numero di porta, invece, è associato ad un processo di livello applicazione che richiede/offre il servizio (questo per la tassonomia MIMD)

A livello di rete si prevedono due tipologie di indirizzi IP che variano a seconda del protocollo di livello di rete utilizzato:

  • Indirizzi IPv4 (a 32 bit)
  • Indirizzi IPv6 (a 128 bit)

In Java, un indirizzo IP viene definito come oggetto della classe InetAddress da cui derivano due sottoclassi, rispettivamente

  1. Inet4Address per istanziare indirizzi IPv4
  2. Inet6Address per istanziare indirizzi IPv6

in generale, possiamo utilizzare solo la classe InetAddress per poter gestire, ricavare le informazioni da entrambe le tipologie di indirizzi (per maggiori info, visionare JAVA tutorials!).

Esempio 1: ottenere l'IP del sito e del calcolatore in cui è situato

programmazione-in-rete-con-java's People

Contributors

piersilvio avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.