Sapere tutto sulla programmazione socket in Java

La programmazione Java Socket viene utilizzata per la comunicazione tra le applicazioni in esecuzione su JRE differenti. La programmazione Java Socket può essere orientata alla connessione o senza connessione.

Programmazione socket in viene utilizzato per la comunicazione tra le applicazioni in esecuzione su diversi . Può essere orientato alla connessione o senza connessione. Nel complesso, un socket è un modo per stabilire una connessione tra un client e un server. In questo articolo, ti dirò tutto sulla programmazione Socket.



Gli argomenti seguenti sono trattati in questo articolo:



Che cos'è la programmazione socket in Java?

Programmazione socket è un modo per connettere due nodi su una rete per comunicare tra loro. Uno presa (nodo) ascolta su una particolare porta su un IP, mentre altri presa raggiunge l'altro per formare una connessione.

Comunicazione client server - Programmazione socket in Java - Edureka



Il server forma l'ascoltatore presa mentre il client raggiunge il server. Socket e Server Socket sono utilizzati per la programmazione socket orientata alla connessione.

Ora vediamo il concetto centrale della programmazione socket, ovvero un socket.

Cos'è un socket in Java?

PER presa nel è un endpoint di un collegamento di comunicazione bidirezionale tra due programmi in esecuzione sulla rete. UN presa è associato a un numero di porta in modo che il livello TCP possa identificare l'applicazione a cui sono destinati i dati.



come avviare aws cli

Un endpoint è una combinazione di un indirizzo IP e un numero di porta. Il pacchetto nella piattaforma Java fornisce una classe,Presache implementa un lato di una connessione a due vie tra il programma Java e un altro programma sulla rete. La classe si trova su un'implementazione dipendente dalla piattaforma, nascondendo i dettagli di un particolare sistema dal programma Java. Usando la classe invece di fare affidamento sul codice nativo, il tuo può comunicare in rete in modo indipendente dalla piattaforma.

Ora che sai cos'è Socket in Java, andiamo oltre e capiamo in che modo il client comunica con il server e come il server risponde.

Programmazione lato client

Nel caso della programmazione lato client, il client attenderà prima l'avvio del server. Una volta che il server è attivo e funzionante, invierà le richieste al server. Successivamente, il client attenderà la risposta dal server. Quindi, questa è l'intera logica della comunicazione tra client e server. Ora vediamo in dettaglio la programmazione lato client e lato server.

Per avviare una richiesta del cliente, è necessario seguire i passaggi indicati di seguito:

1. Stabilire una connessione

Il primo passo è stabilire una connessione socket. Una connessione socket implica che le due macchine dispongano di informazioni sulla reciproca posizione di rete (indirizzo IP) e sulla porta TCP.

Puoi creare un Socket con l'aiuto di una dichiarazione di seguito:

Socket socket = nuovo Socket ('127.0.0.1', 5000)

  • Qui, il primo argomento rappresenta il file Indirizzo IP del server .

  • Il secondo argomento rappresenta il Porta TCP . (È un numero che rappresenta quale applicazione deve essere eseguita su un server.)

2. Comunicazione

Per comunicare su una connessione socket, vengono utilizzati flussi sia per l'input che per l'output dei dati. Dopo aver stabilito una connessione e aver inviato le richieste, è necessario chiudere la connessione.

3. Chiusura della connessione

La connessione socket viene chiusa esplicitamente una volta che il messaggio al server viene inviato.

Ora vediamo come scrivere un programma Java per implementare la connessione socket sul lato client.

// Un programma Java per un clientSide import java.net. * Import java.io. * public class ClientProgram {// inizializza socket e input output flussi private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // costruttore per inserire l'indirizzo IP e la porta client pubblico (indirizzo stringa, porta int) {// stabilire una connessione provare {socket = new Socket (indirizzo, porta) System.out.println ('Connected') // accetta l'input dall'input del terminale = new DataInputStream (System.in) // invia l'output al socket out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // stringa per leggere il messaggio dall'input String line = '' // continua a leggere finché non viene inserito 'Over' while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // chiudi la connessione try {input.close () out.close () socket.close ()} catch (IOException io ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Ora, implementiamo la programmazione lato server e poi arriviamo all'output.

Programmazione lato server

Fondamentalmente, il server creerà un'istanza del suo oggetto e attenderà la richiesta del client. Una volta che il client invia la richiesta, il server comunicherà di nuovo con la risposta.

Per codificare l'applicazione lato server, sono necessari due socket e sono i seguenti:

  • PER ServerSocket che attende le richieste del client (quando un client crea un nuovo Socket ())

  • Un semplice vecchio presa per la comunicazione con il cliente.

Dopo questo, è necessario comunicare con il cliente con la risposta.

Comunicazione

getOutputStream () metodo viene utilizzato per inviare l'output attraverso il socket.

Chiudi la connessione

È importante chiudere la connessione chiudendo il socket così come i flussi di input / output una volta che tutto è stato fatto.

Ora vediamo come scrivere un programma Java per implementare la connessione socket sul lato server.

// Un programma Java per un'importazione Serverside java.net. * Import java.io. * public class ServerSide {// inizializza socket e input stream private Socket socket = null private ServerSocket server = null private DataInputStream in = null // costruttore con port public Server (int port) {// avvia il server e attende una connessione try {server = new ServerSocket (port) System.out.println ('Server started') System.out.println ('Waiting for a client .. . ') socket = server.accept () System.out.println (' Cliente accettato ') // prende l'input dal socket client in = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) String line =' '/ / legge il messaggio dal client fino a quando non viene inviato 'Over' while (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Closing connection') // chiudi connessione socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Server server = nuovo server (5000)}}

Dopo aver configurato sia il client che il server, è possibile eseguire prima il programma lato server. Successivamente, è necessario eseguire il programma lato client e inviare la richiesta. Non appena la richiesta viene inviata dal client, il server risponderà. L'istantanea sottostante rappresenta lo stesso.

1. Quando si esegue lo script lato server, verrà avviato e attenderà l'avvio del client.

iniziare con Visual Studio

2. Successivamente, il client si connetterà e immetterà la richiesta sotto forma di stringa.

3. Quando il client invia la richiesta, il server risponderà.

È così che devi eseguire un programma socket in Java. È inoltre possibile eseguire questi programmi su una finestra di terminale o un prompt dei comandi. Ma, poiché Eclipse è ben avanzato con le sue funzionalità, puoi semplicemente eseguire entrambi i programmi su una console.

Questo ci porta alla fine dell'articolo sulla programmazione Socket in Java. Spero di aver fatto luce sulla tua conoscenza Programmazione socket.

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Siamo qui per aiutarti in ogni fase del tuo viaggio, per diventare oltre a queste domande di intervista Java, abbiamo creato un curriculum progettato per studenti e professionisti che vogliono essere uno sviluppatore Java.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo articolo 'Programmazione socket in Java' e ti risponderemo il prima possibile.