domingo, 18 de novembro de 2012

SOQUETE (socket)

O que é soquete ? Qual a sua função ?

Soquete é um termo do ramo da TI que realmente gera ambiguidades e confusões.
Pois soquete a nível de hardware pode significar tomada ou ainda, o local reservado na placa-mãe para receber o processador. Existe vários tipos de soquetes e o numeral que o acompanha é correspondente ao número de pinos que ele suporta. Um soquete do tipo 771J , aceita o processador Xeon que possui 771 pinos.

O soquete (socket) que me prenderei a explanar é o Soquete de Rede.
O soquete de rede é a interface existente entre a camada de aplicação e a de transporte no modelo OSI-ISO. A camada de transporte utiliza os protocolos UDP (não orientado a conexão e não seguro) e TCP (orientado a conexão e seguro).
Os soquetes de rede são responsáveis por possibilitar a troca de informações entre processos operando em hosts diferentes. Trocando em miúdos: Permitem a comunicação entre programas instalados em diferentes computadores. São as extremidades de canais de comunicação. O datagrama de um soquete é formado pelo endereço IP combinado com o número de porta. A arquitetura utilizada para a comunicação de soquetes é a de cliente-servidor. O cliente, conhecedor do que o servidor oferece, envia requisições de conexão ao servidor. O servidor aguarda ser contactado pelo cliente através de uma porta. Uma vez contactado libera uma das portas (aproximadamente 32 mil no padrão TCP) para o aplicativo cliente. Num mesmo aplicativo pode haver n clientes. Utiliza protolo TCP (são chamados de Stream Sockets). Nesta comunicação para cada processo existe um soquete. Logo, dois processos, dois soquetes.
Já na comunicação usando soquetes que utilizam protocolos UDP (são chamados de datagram socket)a interface é semelhante à das caixas de correio habituais nos sistemas de inter comunicação entre processos. O canal é conceitualmente estabelecido apenas para o envio de uma mensagem (sem garantia de sucesso).
Ao se desenvolver um aplicativo, este terá nuances de servidor e cliente.
Do lado servidor são invocados os seguintes métodos:   Socket - para criar um soquete, Bind - para ceder e esperar a porta de conexão, Listen - deixa as APIs de sobre aviso, Accept - para aceitar uma conexão, Recv - para receber dados, Send - para repassar dados, Close - fecha a conexão. 
Do lado cliente são invocados os seguintes métodos: Get Host By Name - usado para achar o endereço IP, Connect - conectar ao endereço ip encontrado, Socket, Recv, Send, Close.
Entretanto, programar com soquetes não é tão simples. Mas é estritamente necessário quando formos por exemplo criar um chat.
Recomendo a leitura da apostila criada pela Universidade Federal de Campina Grande (Edmar Candeia). È para aplicativos em C. Só que podemos ter a idéia de como funciona todo este processo de programação utilizando soquetes. Querendo se aprofundar, o link está aí:

 http://www.dee.ufcg.edu.br/~ecandeia/downloads/redes/textoprogramacaosockets.pdf

Bem, por aqui vou encerrando mais um post.
Abraços,

Fabiano Lopes, 18 de novembro, 21:40




Nenhum comentário:

Postar um comentário

GOSTOU? NÃO GOSTOU? TEM ALGO IMPORTANTE A ACRESCENTAR?
Comente, seu comentário é importante !