O documento descreve o conceito de sockets e apresenta exemplos de código PHP para criação de sockets UDP e TCP tanto para clientes quanto para servidores. Sockets permitem a comunicação entre aplicações através de redes de computadores, utilizando protocolos como TCP ou UDP.
1. Introdução a Redes de
Computadores
- Nível de Transporte -
Sockets
Prof. André Peres
andre.peres@poa.ifrs.edu.br
2. Sobre este material
• Vídeos da apresentação em:
Parte 1 - Sockets API
Parte 2 - Sockets Múltiplos Clientes
Este trabalho está licenciado sob uma Licença Creative Commons
Atribuição-NãoComercial-SemDerivações 4.0 Internacional. Para ver uma
cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/4.0/.
3. Referências
Redes de Computadores
(impresso)
Redes de Computadores
(e-book)
Redes de Computadores II
(impresso)
Redes de Computadores II
(e-book)
Redes de Computadores III
(impresso)
Redes de Computadores III
(e-book)
4. • Sockets:
• como vimos no nível de aplicação:
Sockets
intra-rede
Rede
Transporte
Aplicação7
4
3
2
1
Placa de Rede
Software
Aplicativo
Sistema
Operacional
5. • Sockets:
• socket ⇒ canal de comunicação entre cliente e servidor
• API sockets ⇒ comandos para criação de um socket
• Exemplos simples de sockets utilizando PHP
Sockets
22. • Socket TCP (cliente):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
print("nconectando ao servidor....n");
socket_connect($socket,"127.0.0.1", "100");
echo "nEnviando mensagem para servidor!n";
$msg = "Ola Servidor!";
$len = strlen($msg);
socket_write ($socket, $msg, $len);
$buf = '';
print("nlendo dados do servidor....n");
$buf = socket_read($socket, 1500);
print ($buf);
socket_close ($socket);
echo "Fim!n";
?>
Sockets
se conecta com
servidor (IP e porta)
23. Sockets
• Múltiplos Clientes
• O UDP por definição atende um único cliente por vez
• O TCP é capaz de gerenciar múltiplos clientes
simultâneos em um processo servidor
• Existe suporte do protocolo TCP (S.O.) para isso
• Servidor TCP mantém a mesma porta para todos os clientes
• Deve ser programado para atender múltiplos clientes
obs: Não está implementado no exemplo TCP apresentado!
24. Sockets
• Múltiplos Clientes
• O processo servidor TCP permanece em modo LISTEN
• Quando recebe uma requisição de conexão (SYN)
• cria um processo filho via chamada ao S.O.
• o processo filho responde ao SYN com SYN/ACK
• segue o processo normal entre cliente e processo
filho
• Cabe ao S.O. entregar os pacotes de um cliente ao
processo filho correto
25. Sockets
• Múltiplos Clientes
• Como o S.O. diferencia entre os processos filho:
socket pair
[IP local: porta local - IP remoto: porta remota]