Home Programação em Rede com Sockets TCP/IP e UDP/IP
Post
Cancelar

Programação em Rede com Sockets TCP/IP e UDP/IP

Baseado nos cursos da Softblue

O que são sockets

  • Mecanismo de comunicação entre dois programas que funcionam na mesma rede

  • Modelo cliente/servidor

– Uma aplicação servidor é executada numa determinada máquina e tem um socket ligado a uma porta específica dessa máquina

– O servidor espera que um cliente faça um pedido de ligação através desse socket

Sockets TCP/IP

  • Existe uma conexão entre o cliente e o servidor

– Permite utilização de fluxos de dados (streams)

  • A comunicação é confiável

– Sem perda de dados

– Sem inversão de ordem dos pacotes

graph TD
    A[O cliente tenta se conectar ao servidor por uma porta] --- B[fa:fa-desktop Cliente]
    B --- C[fa:fa-door-open Porta]
    B --- D[ ]
    D -->|requisição de conexão| E[fa:fa-door-open Porta]
    E --- F[fa:fa-server Servidor]
    F --- G[fa:fa-door-open Porta]
    G -->|dados| C
    C -->|dados| G
    F --- H[O servidor conecta o cliente numa nova porta, por onde é feito o tráfego dos dados]

Sockets UDP/IP

  • Não existe uma conexão entre o cliente e o servidor

– Envio de datagramas (remetente, receptor, conteúdo)

  • A comunicação não é confiável

– Dados podem ser perdidos

– Datagramas podem chegar fora de ordem

  • Muito mais veloz que sockets TCP/IP
graph TD
    A[O cliente manda datagramas para o servidor] --- B[fa:fa-desktop Cliente]
    B -->|fa:fa-file envio de datagramas| E[fa:fa-door-open Porta]
    E --- F[fa:fa-server Servidor]

Multicast

  • Envio de datagramas para um grupo de destinatários

  • Utiliza protocolo UDP

  • Grupos multicast (IPs classe “D”)

– de 224.0.0.0 a 239.255.255.255

graph TD
    A[O cliente manda uma mensagem para um grupo] --- B[fa:fa-desktop Cliente]
    B --> C((Grupo Multicast))
    C --> D[fa:fa-desktop] & E[fa:fa-desktop] & F[fa:fa-desktop]
    D & E & F --- G[Os computadores cadastrados no grupo recebem a mensagem]
Esta postagem está licenciada sob CC BY 4.0 pelo autor.