Sockets em java
Introdução
A comunicação entre processos de software tornou-se indispensável nos sistemas atuais. O mecanismo mais utilizado atualmente para possibilitar comunicação entre aplicações é chamado socket. Neste artigo será apresentado o suporte que Java oferece para a utilização desse mecanismo de comunicação.
Java oferece os seguintes modos de utilização de sockets: o modo orientado a conexão, que funciona sobre o protocolo TCP (Transmission Control Protocol, ou protocolo de controle de transmissão), e o modo orientado a datagrama, que funciona sobre o protocolo UDP (User Datagram Protocol, ou protocolo de datagrama de usuários). Os dois modos funcionam sobre o protocolo IP (Internet Protocol).
Cada um desses modos tem sua aplicabilidade, e possuem vantagens e desvantagens em sua utilização.
Modo orientado a conexão TCP/IP | Modo orientado a datagrama UDP/IP | * Serviços confiáveis: * Sem perdas de dados na rede; * Garantia de ordem dos pacotes; * Possibilidade de utilização de fluxo de dados (DataStreams); Desvantagens: * É mais lento que o modo orientado a datagrama; * Comportamento servidor diferente de comportamento cliente; | * Serviços não confiáveis: * Mensagens podem ser perdidas; * Ordem das mensagens não é garantida; * Cada mensagem é um datagrama:[sender (remetente), receiver (receptor), contents (conteúdo da mensagem)]Vantagem: * É muito mais rápido que o modo orientado a conexão; |
O processo de comunicação no modo orientado à conexão ocorre da seguinte forma: O servidor escolhe uma determinada porta (o termo correto seria porto, em inglês port, mas aqui no Brasil o termo utilizado comumente é porta) e fica aguardando conexões nesta porta. O cliente deve saber previamente qual a máquina servidora (host) e a porta que o servidor está aguardando conexões. Então o cliente solicita uma conexão em um host/porta, conforme demonstrado na figura 1.
Figura 1
Se nenhum