Saiba tudo sobre programação de soquetes em Java



A programação Java Socket é usada para comunicação entre os aplicativos em execução em diferentes JRE. A programação Java Socket pode ser orientada para conexão ou sem conexão.

Programação de soquete em é usado para comunicação entre os aplicativos que estão sendo executados em diferentes . Ele pode ser orientado para conexão ou sem conexão. Em geral, um soquete é uma forma de estabelecer uma conexão entre um cliente e um servidor. Neste artigo, contarei tudo sobre a programação de soquetes.

Os tópicos abaixo são abordados neste artigo:





O que é programação de soquete em Java?

Programação de soquete é uma maneira de conectar dois nós em uma rede para se comunicarem entre si. 1 tomada (nó) escuta em uma porta específica em um IP, enquanto outro tomada estende a mão para o outro para estabelecer uma conexão.

Comunicação cliente-servidor - Programação de soquetes em Java - Edureka



O servidor forma o ouvinte soquete enquanto o cliente alcança o servidor. Socket e Server Socket são usados ​​para programação de soquete orientada para conexão.

pl sql developer tutorial para iniciantes

Agora vamos entender o conceito central da programação de soquete, ou seja, um soquete.

O que é um soquete em Java?

PARA tomada dentro é um ponto final de um link de comunicação bidirecional entre dois programas em execução na rede. UMA tomada é vinculado a um número de porta para que a camada TCP possa identificar a aplicação para a qual os dados são enviados.



Um terminal é uma combinação de um endereço IP e um número de porta. O pacote na plataforma Java fornece uma classe,Soqueteque implementa um lado de uma conexão bidirecional entre seu programa Java e outro programa na rede. A classe fica em cima de uma implementação dependente de plataforma, ocultando os detalhes de qualquer sistema específico de seu programa Java. Ao usar a classe em vez de confiar no código nativo, seu pode se comunicar pela rede de forma independente da plataforma.

Agora que você sabe o que é Socket em Java, vamos prosseguir e entender como o cliente se comunica com o servidor e como o servidor responde de volta.

Programação do lado do cliente

No caso de programação do lado do cliente, o cliente primeiro aguardará o servidor iniciar. Assim que o servidor estiver instalado e funcionando, ele enviará as solicitações ao servidor. Depois disso, o cliente aguardará a resposta do servidor. Portanto, esta é toda a lógica da comunicação entre cliente e servidor. Agora vamos entender a programação do lado do cliente e do lado do servidor em detalhes.

Para iniciar uma solicitação do cliente, você precisa seguir as etapas mencionadas abaixo:

1. Estabeleça uma conexão

A primeira etapa é estabelecer uma conexão de soquete. Uma conexão de soquete implica que as duas máquinas têm informações sobre a localização da rede uma da outra (endereço IP) e a porta TCP.

Você pode criar um Socket com a ajuda de uma declaração abaixo:

Soquete socket = novo soquete (“127.0.0.1”, 5000)

  • Aqui, o primeiro argumento representa o Endereço IP do servidor .

  • O segundo argumento representa o Porta TCP . (É um número que representa qual aplicativo deve ser executado em um servidor.)

2. Comunicação

Para se comunicar por meio de uma conexão de soquete, os fluxos são usados ​​para entrada e saída de dados. Depois de estabelecer uma conexão e enviar as solicitações, você precisa encerrar a conexão.

3. Fechando a conexão

A conexão de soquete é fechada explicitamente assim que a mensagem para o servidor é enviada.

Agora vamos ver como escrever um programa Java para implementar a conexão de soquete no lado do cliente.

// Um ​​programa Java para um ClientSide import java.net. * Import java.io. * public class ClientProgram {// inicializar soquete e fluxos de saída de entrada private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructor para colocar o endereço IP e a porta pública Client (String address, int port) {// estabelecer uma conexão, tente {socket = new Socket (address, port) System.out.println ('Connected') // recebe a entrada do terminal input = new DataInputStream (System.in) // envia saída para o soquete out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // string para ler a mensagem de entrada String line = '' // continue lendo até que 'Over' seja inserido while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (linha)} catch (IOException i) {System.out.println (i)}} // feche a conexão, tente {input.close () out.close () socket.close ()} catch (IOException Eu ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Agora, vamos implementar a programação do lado do servidor e, em seguida, chegar ao resultado.

como usar anaconda python

Programação do lado do servidor

Basicamente, o servidor irá instanciar seu objeto e aguardar a solicitação do cliente. Assim que o cliente enviar a solicitação, o servidor se comunicará de volta com a resposta.

Para codificar o aplicativo do lado do servidor, você precisa de dois soquetes e eles são os seguintes:

  • PARA ServerSocket que espera pelas solicitações do cliente (quando um cliente faz um novo Socket ())

  • Um simples velho tomada para comunicação com o cliente.

Depois disso, você precisa se comunicar com o cliente com a resposta.

Comunicação

getOutputStream () método é usado para enviar a saída através do soquete.

Feche a conexão

É importante fechar a conexão fechando o soquete, bem como os fluxos de entrada / saída depois que tudo estiver feito.

Agora vamos ver como escrever um programa Java para implementar a conexão de soquete no lado do servidor.

// Um ​​programa Java para um Serverside import java.net. * Import java.io. * public class ServerSide {// inicializar o soquete e o fluxo de entrada private Socket socket = null private ServerSocket server = null private DataInputStream in = null // constructor with port public Server (int port) {// inicia o servidor e espera por uma conexão try {server = new ServerSocket (port) System.out.println ('Server started') System.out.println ('Waiting for a client .. . ') socket = server.accept () System.out.println (' Cliente aceito ') // obtém a entrada do soquete do cliente em = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) String line =' '/ / lê a mensagem do cliente até que 'Over' seja enviado enquanto (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Fechando a conexão') // fecha a conexão socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Servidor servidor = novo servidor (5000)}}

Depois de configurar o cliente e o servidor, você pode executar o programa do lado do servidor primeiro. Depois disso, você precisa executar o programa do lado do cliente e enviar a solicitação. Assim que a solicitação for enviada do lado do cliente, o servidor responderá de volta. O instantâneo abaixo representa o mesmo.

1. Quando você executa o script do lado do servidor, ele iniciará e aguardará o cliente iniciar.

2. Em seguida, o cliente se conecta e insere a solicitação na forma de uma string.

3. Quando o cliente envia a solicitação, o servidor responde de volta.

É assim que você precisa executar um programa de soquete em Java. Você também pode executar esses programas em uma janela de terminal ou prompt de comando. Mas, como o Eclipse é bem avançado em seus recursos, você pode simplesmente executar ambos os programas em um console.

Isso nos leva ao final do artigo sobre programação de soquetes em Java. Espero ter esclarecido o seu conhecimento sobre Programação de soquetes.

Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Estamos aqui para ajudá-lo em todas as etapas de sua jornada, para nos tornarmos uma pergunta além dessa entrevista java, nós criamos um currículo que é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java.

Tem alguma questão para nós? Mencione isso na seção de comentários deste artigo “Programação de soquetes em Java” e entraremos em contato com você o mais breve possível.