Programe em Java
Leonardo R. Nunes - leonardo@sumersoft.com
1. 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 não confiáveis:
Serviços confiáveis: o Mensagens podem ser perdidas; o Sem perdas de dados na rede; o Ordem das mensagens não é garantida; o Garantia de ordem dos pacotes;
Possibilidade de utilização de fluxo de dados • Cada mensagem é um datagrama:
[sender (remetente), receiver (receptor), contents
(DataStreams);
(conteúdo da mensagem)]
Vantagem:
Desvantagens:
• É muito mais rápido que o modo orientado
• É mais lento que o modo orientado a a conexão; datagrama; • Comportamento servidor diferente de comportamento cliente;
2. Sockets TCP/IP
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