Socket

Post on 10-Jul-2015

238 views 3 download

Transcript of Socket

O que é Socket?

0 Socket é um mecanismo de comunicação, usadonormalmente para executar um modelocliente/servidor, que permite a troca de mensagensentre os processos de uma máquina/aplicaçãoservidor e de uma máquina/aplicação cliente.

Como surgiram?

0Os sockets surgiram originalmente no sistemaoperativo Unix BSD (Berkeley SoftwareDistribution)

0O BSD (Berkeley Software Distribution) éum Sistema Operativo do UNIX desenvolvidopela Universidade de Berkeley, na Califórnia, duranteos anos 70 e 80.

Quais os tipos de sockets?

0 TCPSignifica "Protocolo de controle de transmissão" sendo um dos principais protocolos de envio e recebimento de dados MS internet

O TCP é o protocolo mais usado isto porque fornece garantia na entrega de todos os pacotes entre um PC emissor e um PC receptor.

0 UDPUDP é um protocolo de comunicação que oferece uma quantidade limitada de serviço quando as mensagens são trocadas entre computadores em uma rede que usa IP

UDP é um protocolo mais simples e por si só não fornece garantia na entrega dos pacotes.

TCP vs UDP

Qual a sua utilidade?0 Socket é usado para um processo para comunicar-se

com um outro que esteja numa máquina qualquer.

0Um socket pode ser gerado como um portão deentrada e de saída de cada processo, podendo enviare/ou receber mensagens através de seus sockets.

0Devido ao fato que, usualmente, os protocolos detransporte da rede são implementados e controladospelo sistema operacional, um socket também pode serconcebido como uma interface entre a aplicação e osubstrato de comunicação do sistema operacional.

Chamadas usadas no Socket

0 Socket ( ) cria um socket usado para comunicaçãoe retorna um descritor

0Write ( ) para enviar dados através de umaconexão TCP

0Read ( ) para receber dados através de umaconexão TCP

0Close ( ) para deslocar o socket

Funções usadas no Socket

0Bind ( ) usado para servidores para especificaruma porta na qual ele irá esperar conexões

0Listen ( ) servidores chama, o listen para colocaro socket do modo passivo e torná-lo disponivel paraaceitar conexões

0Connect ( ) depois de criar um socket, um clientechama connect para estabelecer uma conexão com umservidor, usando o descritor do socket

O indicador que identifica uma tomada conectada.

Um apontador para a memória intermédiapara receber os dados de entrada.

O comprimento, em bytes, do bufferapontado pelo buf parâmetro.

Um conjunto de sinalizadores que influenciam o comportamento destafunção.

0Accept ( ) depois de um sevidor chamar o socket paracriar um socket, bind para especificar o seu endereço elisten para colocá-lo no modo passivo, ele deve chamar oaccept para pegar a primeira solicitação de conexão na fila.

Um ponteiro opcional para um inteiro que contém o comprimentoda estrutura apontada pelo addr parâmetro.

Um ponteiro opcional para umbuffer, que recebe o endereço daentidade de ligação, tal como éconhecida para a camada decomunicações

Exemplo de uso de socket

Socket e conexão via TCP/IP

0 Servidor fica à espera de ligações

0 Cliente liga-se ao servidor, sendo estabelecidaconexão

0 Conexão é um canal fiável para comunicaçãobidireccional (funciona em duas direções em comume opostas)

0Um socket representa um extremo de uma conexão

0Uma conexão é caracterizada por um socket -pair

Cliente

Servidor

Web grafia0 http://sockets-ds.blogspot.pt/

0 http://pplware.sapo.pt/networking/redes-sabe-o-que-sao-sockets-de-comunicacao-parte-i/

0 http://www.coders.me/lang/en/general/introduccion-a-los-sockets-bsd-en-php

0 http://homepages.dcc.ufmg.br/~mmvieira/redes/sockets.pdf

0 http://www.dimap.ufrn.br/~thais/Pdist/socket.pdf

0 http://www.midiacom.uff.br/~debora/redes1/pdf/programacao.pdf

0 http://www.cs.rutgers.edu/~pxk/rutgers/notes/sockets/

0 http://gsd.di.uminho.pt/teaching/misd/2007/od/sockets.pdf

0 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v=vs.85).aspx

0 http://msdn.microsoft.com/en-us/library/windows/desktop/ms737526(v=vs.85).aspx

0 http://www.pessoal.utfpr.edu.br/jeansimao/Fundamentos2/APITCPIP/Tutorial%20-%20Programacao%20C++%20TCP-IP%20-%20Marcelo%20Hiroshi%20SugitaTexto.pdf

0 http://www.tecmundo.com.br/o-que-e/780-o-que-e-tcp-ip-.htm

0 http://pplware.sapo.pt/networking/protocolo-tcp-vs-protocolo-udp/

0 http://searchsoa.techtarget.com/definition/UDP

0 http://www.dca.ufrn.br/~guga/downloads/par/aulas/Aula8-Sockets.pdf

0 http://inst.eecs.berkeley.edu/~ee122/sp04/socket.pdf

0 http://www.dotnetjohn.com/articles.aspx?articleid=291

0 http://denmartins.wordpress.com/2009/11/11/socket-em-c/