Introdução à programação de soquetes em Java

A World Wide Web e a Internet mudaram a maneira como vivemos e nos comunicamos uns com os outros e a maneira como conduzimos ciência, engenharia e comércio. A vida moderna está sendo completamente orientada ou centrada na Internet. As empresas estão continuamente buscando novas maneiras de produzir e se comunicar com vários serviços de uma nova maneira, introduzindo inovação. Neste artigo, discutiremos a programação de soquetes em Java.

Os soquetes fornecem uma interface para a programação de redes da camada de transporte do modelo OSI. As comunicações de rede usando soquetes são encontradas onipresentemente na Internet. Além disso, um programa de soquete escrito em Java pode se comunicar com um programa de soquete escrito em linguagem não-Java como C, C ++, Python, etc.

Métodos de classe de soquete

Os métodos da classe Socket são encontrados em Java. Um soquete é obrigado a ser um número de porta, para que o TCP reconheça o número da porta na qual os dados devem ser enviados. Java fornece um conjunto de classes, uma das quais é java.net. Isso é usado para o rápido desenvolvimento de aplicativos de rede. As principais classes, interfaces e exceções presentes no pacote java.net simplificam a complexidade envolvida na criação de programas de clientes e servidores:

As Classes são:

  • Manipulador de Conteúdo
  • Pacote de datagrama
  • Soquete de datagrama
  • Datagram Socket Imp 1
  • Conexão de URL HTTP
  • Endereço líquido
  • Soquete multicast
  • Soquete do servidor
  • Soquete
  • Soquete Imp 1
  • URL
  • Conexão de URL
  • Codificador de URL
  • Manipulador de fluxo de URL

As interfaces são:

  • Fábrica de manipuladores de conteúdo
  • Mapa de nome de arquivo
  • Socket Impl Factory
  • Fábrica de manipuladores de fluxo de URL

As exceções são:

  • Exceção de Vinculação
  • Exceção de conexão
  • Exceção de URL malformada
  • Nenhuma rota para exceção de host
  • Exceção de protocolo
  • Exceção de soquete
  • Exceção de host desconhecida
  • Exceção de serviço desconhecida.

Programação de soquetes TCP / IP

Existem duas classes usadas no pacote java.net que são usadas na criação de programas. Eles são:

  • Soquete do servidor
  • Soquete

Um programa de servidor se comunica através de fluxos de entrada e saída. Se houver um pedido de conexão, existe um novo soquete que entra em jogo e aqui está uma conexão estabelecida com ele.

Método 1 - Criando um programa de soquete de servidor

Existem várias etapas para criar um programa de soquete de servidor em Java. As etapas simples para criar um programa de soquete do servidor são as seguintes:

Etapa 1 - O servidor de soquete é aberto

Servidor Socket Geral = novo Servidor Socket (PO)

Aqui PO é o número da porta.

Aqui, o número da porta é atribuído à rede do servidor através da qual ele se comunicará usando fluxos de entrada / saída.

Etapa 2 - Há uma solicitação do cliente pela qual devemos aguardar pacientemente

Soquete Geral = servidor. aceitar()

Aqui o servidor. accept () aguarda o cliente e o nome do soquete é Client aqui.

Etapa 3 - Os fluxos de E / S são criados para que uma conexão seja estabelecida

O fluxo de entrada de dados é = novo fluxo de entrada de dados (cliente. Get Stream de entrada ());

Fluxo de saída de dados os = new Fluxo de saída de dados (client. Get Stream de saída ());

O fluxo de entrada é e o fluxo de saída os recebe seu Get Input Stream () e eles são chamados respectivamente.

Etapa 4 - O contato com o cliente é criado

Receber do cliente: String hello = br. Leia a linha();

Envie para o cliente: br. Escreva Bytes ("Como você está \ n");

O código a seguir se comunica com o cliente que recebe e envia a um cliente os pedidos.

Etapa 5 - Finalmente, o soquete é feito para sair

Finalmente, a função fechar soquete é usada para fechar e finalizar a programação do soquete.

Um exemplo simples de um soquete de servidor é mostrado abaixo:

// Um ​​programa simples para conectar o servidor.

import java.net.*;
import java.io.*;
public class SimpleMachine (
public static void main(String args()) throws IOException (
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close(); )
)

Método 2 - Criando um programa de soquete de servidor simples

Agora vamos ver um programa cliente simples em Java. As etapas para criar um programa cliente simples em Java são mostradas abaixo:

Etapa 1 - Objeto de soquete é criado

Cliente do soquete = novo soquete (servidor, port_id)

O servidor e o ID da porta estão conectados, ou seja, o servidor está conectado ao ID da porta.

Etapa 2 - Os fluxos de entrada / saída são criados

é = novo fluxo de entrada de dados (client.getInputStream ());

os = novo fluxo de saída de dados (client.getOutputStream ());

O fluxo de entrada é e o fluxo de saída os é usado para comunicação com o cliente.

Etapa 3 - Os fluxos de entrada / saída são feitos para conversar com o cliente

Os dados são lidos no servidor: String hello = br. Leia a linha();

Envie dados para o servidor: br.writeBytes ("Como você está \ n")

Esta etapa se comunica com o servidor. O fluxo de entrada e o fluxo de saída se comunicam com o servidor.

Etapa 4 - Feche o soquete quando terminar

Esta função fechará o cliente quando finalmente terminar.

Um exemplo de um programa simples de soquete de servidor é mostrado abaixo

// Um ​​programa simples para o cliente

import java.net.*;
import java.io.*;
public class SimpleMachineClient (
public static void main(String args()) throws IOException
(
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host", 1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
)
)

Conclusão - Programação de soquete em Java

  • A programação em soquete é muito útil em Java e em qualquer outra linguagem de programação, basicamente pelo fato de um programa escrito em Java poder se conectar a um programa escrito em C ou C ++.
  • Em outras palavras, o idioma do programa de soquete não importa quando é necessário haver uma conexão entre os dois.
  • Neste artigo, vimos basicamente o exemplo do servidor simples e do cliente simples em que há uma conexão entre o soquete do servidor e no outro há uma conexão entre o soquete do servidor.
  • Usamos a programação TCP / IP para o mesmo. No entanto, existem muitas técnicas de programação, como técnicas de programação UDP e técnicas de programação de URL. Não vimos exemplos disso neste artigo. Enfatizamos a técnica de programação TCP / IP.

Artigos recomendados

Este é um guia para programação de soquetes em Java. Aqui discutimos métodos de classe de soquete com o programa java. Você também pode consultar nossos outros artigos sugeridos -

  1. Pacotes Java
  2. Copiar Construtor em Java
  3. Mesclar classificação em Java
  4. Guia para os melhores compiladores Java
  5. Exemplo de pacote Java | Exemplo de trabalho e codificação