Redes - Sabe o que so sockets de comunicao? (Parte I)
Redes - Sabe o que so sockets de comunicao? (Parte I) 2012-06-12 09:15:04 A interoperabiIidade de sistemas um requisito fundamentaI no mundo tecnoIgico! Quem gosta de tecnologia, certamente j se questionou como determinados sistemas funcionam e comunicam. Hoje em dia, graas a adopo, como strandard, do protocolo IP, os dispositivos conseguem facilmente "comunicar" entre eles de uma forma totalmente transparente para o utilizador. Mas como que uma aplicao cliente consegue, por exemplo, comunicar com uma aplicao servidor e vice-versa? Actualmente existem algumas tecnologias que permitem a comunicao entre mquinas. Uma das tecnologias/mecanismos mais comuns para comunicao entre mquinas os sockets. Socket um mecanismo de comunicao, usado normalmente para implementar um modelo cliente/servidor, que permite a troca de mensagens entre os processos de uma mquina/aplicao servidor e de uma mquina/aplicao cliente. Como funciona o mecanismos de sockets? Imagine por exemplo que precisa de desenvolver uma aplicao servidor que funcione como uma "sala" de chat. Na prtica essa aplicao ir receber ligaes dos clientes (num determinado porto) e posteriormente, se um cliente enviar uma mensagem, o servidor envia essa mensagem para todos os outros clientes. Ou imagine por exemplo que tem instalado um sensor de temperatura numa mquina e uma aplicao Page 2 PpIware Redes - Sabe o que so sockets de comunicao? (Parte I) aplicao servidor que controla esse sensor, dando informaes sobre o estado do tempo. A aplicao cliente, poder ligar-se remotamente aplicao servidor e obter tambm essa informao..tudo isto possvel de desenvolver usando sockets, De uma forma geral, existe uma aplicao que cria um socket servidor e uma outra aplicao que implementa um cliente. Existem principalmente dois tipos de sockets: Socket_Stream (aka TCP) ou SOCK_DGRAM (aka UDP). Os sockets TCP garantem fiabilidade na comunicao (garantia da entrega de pacotes), enquanto os sockets UDP no do garantia na entrega de pacotes a nvel da camada de transporte). Para saber mais sobre os protocolos de transporte TCP e UDP, aconselhamos a lerem o nosso artigo Protocolo TCP vs Protocolo UDP. Depois de estabelecida a ligao entre aplicaes/processos, a aplicao cliente passa a poder enviar mensagens para a aplicao servidor (que pode tambm funcionar como socket cliente) via socket. Sockets TCP Sockets, so uma abstraco para endereos de comunicao atravs dos quais processos comunicam. Cada endereo tem um identificador nico composto pelo endereo da mquina e o identificador local da porta usado pelo processo. Este identificador de porta usado para mapear dados recebido pela mquina para processos (aplicaes) especficos. O processo de comunicao no modo orientado ligao ocorre da seguinte forma: o servidor colocado num determinado porto e aguarda por ligaes a essa porta. O cliente deve saber previamente qual o nome ou IP do servidor e o respectivo porto onde o servidor foi colocado espera de ligaes. Ento o cliente solicita uma ligao ao host (servidor)/porto conforme demonstra a figura seguinte. Se nenhum problema ocorrer, o servidor aceita a ligao gerando um socket num porto vago do Iado do servidor, criando assim um canal de comunicao entre o cliente e o servidor. De referir que o porto original fica livre para poder receber outros pedidos de ligao. A figura seguinte demonstra esse mesmo canal de comunicao. Tipicamente o comportamento do servidor ficar em loop, aguardando novas ligaes e "gerando" sockets para atender as solicitaes de clientes. para saberem mais sobre este assunto, aconselhamos a lerem o nosso artigo sobre Como que o meu MSN comunica com o teu? Num prximo artigo iremos mostrar, passo a passo, como feita a comunicao entre aplicaes/processos, usando sockets TCP. Page 2