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]