Aula sockets

13
Introdução a Sockets e as ferramentas de desenvolvimento Gerson Nunes

Transcript of Aula sockets

Page 1: Aula sockets

Introdução a Socketse as ferramentas de

desenvolvimento

Gerson Nunes

Page 2: Aula sockets

Conexão do cliente Ferramentas básicas pra desenvolvimento

de sockets Testes básicos de cliente / servidor

Assuntos básicos

Page 3: Aula sockets

Como funciona um cliente?

Page 4: Aula sockets

Escuta as conexões em uma determinada porta◦ Intervalo de portas válidas (0 – 65535);◦ Servidor pode suportar múltiplas conexões

simultâneas (mais de 1 usuário em uma mesma porta, utilizando controle de recursos através de múltiplas threads);

◦ Controle de acesso (senhas, autenticações);

Como funciona um servidor?

Page 5: Aula sockets

Endereços de IP (verificar com o comando /sbin/ifconfig) Rotas definidas (/sbin/route –n) Verifica se a conexão está ativa (ping IP_DO_GATEWAY) Verifica se a internet está funcionando (ping

www.google.com.br) Testa resolução de domínios (nslookup www.furg.br) Verifica identidade do domínio (whois www.furg.br) Portas em uso (verificar com o comando netstat –an|grep

OUVINDO ou LISTENING) Portas em abertas em uso ou filtradas (nmap localhost) Listando regras de firewall (/sbin/iptables –L) (precisa root) Invocando um servidor (nc –l porta) Cliente padrão (telnet IP porta)

Ferramentas básicas

Page 6: Aula sockets

Criando um servidor◦ Abra um terminal e digite:

nc –l 1234 Isso abrirá um servidor na porta 1234

Testando o servidor◦ Abra outro terminal e digite:

telnet localhost 1234 Isso conectará no servidor na porta 1234 Digite qualquer mensagem

Testes básicos

Page 7: Aula sockets

Verifique seu IP Escolha uma porta livre Crie um servidor no seu computador Informe o IP e a porta do seu computador

para o seu colega ao lado Tente conectar no servidor do colega

utilizando o cliente padrão (telnet) Peça pra ele fazer o mesmo com o seu

servidor que está rodando. Tentem trocar mensagens

Teste prático

Page 8: Aula sockets

Socket é uma abstração de comunicação utilizado para vários tipos de dispositivos, através dele um aplicativo pode enviar e receber dados, faz-se uma analogia com a manipulação de um arquivo aberto.

Os sockets permitem que os aplicativos se conecte à rede afim de se comunicarem com outras aplicações em uma mesma rede.

Desta forma as Informações escritas por um aplicativo em uma máquina pode ser lido por outro aplicativo em uma máquina diferente.

O que são sockets?

Page 9: Aula sockets
Page 10: Aula sockets
Page 11: Aula sockets

O UDP não possui garantia de entrega, portanto geralmente ele é usado para aplicações de tempo real (VOIP, MOIP, streams de vídeo) as quais geralmente podem ter perdas e atrasos variados.

O TCP possui garantia de entrega (AKs/NAKs), dessa forma ele garante a integridade dos dados enviados e recebidos.

O TCP é o mais utilizado. Exemplos simples: (terminais remotos, qualquer transferência de arquivos, navegação web, chat e muitos outros).

UDP ou TCP?

Page 12: Aula sockets

Servidor em C

server.txt daytimeserver.txt

Page 13: Aula sockets

Cliente em C

daytimeclient.txt