SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Introdução a Redes de
Computadores
- Nível de Transporte -
Sockets
Prof. André Peres
andre.peres@poa.ifrs.edu.br
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/.
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)
• 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
• 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
• Socket UDP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, "0.0.0.0", "100");
while(1)
{
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nMensagem recebida: $buf do cliente: $from:$port n";
socket_set_nonblock($socket);
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
$bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port);
}
?>
Sockets
• Socket UDP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, "0.0.0.0", "100");
while(1)
{
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nMensagem recebida: $buf do cliente: $from:$port n";
socket_set_nonblock($socket);
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
$bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port);
}
?>
Sockets
socket (IPv4 , datagrama , UDP)
• Socket UDP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, "0.0.0.0", "100");
while(1)
{
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nMensagem recebida: $buf do cliente: $from:$port n";
socket_set_nonblock($socket);
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
$bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port);
}
?>
Sockets
bind (IP , porta)
• Socket UDP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, "0.0.0.0", "100");
while(1)
{
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nMensagem recebida: $buf do cliente: $from:$port n";
socket_set_nonblock($socket);
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
$bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port);
}
?>
Sockets
recebe dados do
socket
• Socket UDP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, "0.0.0.0", "100");
while(1)
{
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nMensagem recebida: $buf do cliente: $from:$port n";
socket_set_nonblock($socket);
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
$bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port);
}
?>
Sockets
envia dados para o
socket
• Socket UDP (cliente):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_nonblock($socket);
$msg = "Ola Servidor!";
$len = strlen($msg);
$bytes_sent = socket_sendto($socket, $msg, $len, 0, "127.0.0.1", "100");
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nRecebido: $buf de $from:$portnn";
socket_close($socket);
echo "Fim!n";
?>
Sockets
• Socket UDP (cliente):
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_nonblock($socket);
$msg = "Ola Servidor!";
$len = strlen($msg);
$bytes_sent = socket_sendto($socket, $msg, $len, 0, "127.0.0.1", "100");
socket_set_block($socket);
$bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port);
echo "nRecebido: $buf de $from:$portnn";
socket_close($socket);
echo "Fim!n";
?>
Sockets
envia dados diretamente
para o socket
especificando IP e porta
destinos
(não tem bind)
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
socket (IPv4 , fluxo , TCP)
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
bind (IP , porta)
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
coloca o socket em
estado: LISTEN
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
quando receber o
SYN, aceita a
conexão
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
recebe dados do
socket
• Socket TCP (servidor):
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, "0.0.0.0", "100");
socket_listen($socket, 3);
while (1) {
$spawn = socket_accept($socket);
$buf = '';
$buf = socket_read($spawn, 1024);
echo "nMensagem recebida: $bufn";
$buf = "Recebi sua mensagem: ".$buf;
$len = strlen($buf);
socket_write ($spawn, $buf, $len);
echo "Mensagem enviada!n";
socket_close ($spawn);
}
?>
Sockets
envia dados para o
socket
• 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
• 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
socket (IPv4 , fluxo , TCP)
• 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)
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!
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
Sockets
• Múltiplos Clientes
• Como o S.O. diferencia entre os processos filho:
socket pair
[IP local: porta local - IP remoto: porta remota]
Sockets
• Múltiplos Clientes
Sockets
• Múltiplos Clientes
Sockets
• Múltiplos Clientes
Sockets
• Múltiplos Clientes
Sockets
• Socket pair no windos → comando netstat -an
Sockets
• Socket pair no linux → comando netstat -ltuna

Mais conteúdo relacionado

Mais procurados

Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Luis Gustavo Almeida
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPGuilherme Blanco
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comandoSCTI UENF
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1garux
 
PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7iMasters
 
Fugindo das armadilhas do MVC
Fugindo das armadilhas do MVCFugindo das armadilhas do MVC
Fugindo das armadilhas do MVCEdiaimo Borges
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Flávio Ribeiro
 
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!	TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática! tdc-globalcode
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 

Mais procurados (20)

Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
PHP 5.3 - What's new?
PHP 5.3 - What's new?PHP 5.3 - What's new?
PHP 5.3 - What's new?
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando[SCTI 2011] - CLI: sobrevivendo na linha de comando
[SCTI 2011] - CLI: sobrevivendo na linha de comando
 
Php
PhpPhp
Php
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 
PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7
 
Fugindo das armadilhas do MVC
Fugindo das armadilhas do MVCFugindo das armadilhas do MVC
Fugindo das armadilhas do MVC
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
 
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!	TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
 
PHP fora da Web
PHP fora da WebPHP fora da Web
PHP fora da Web
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
SPL Datastructures
SPL DatastructuresSPL Datastructures
SPL Datastructures
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 

Destaque

Introdução a Redes de Computadores - 5 - Nível de Transporte - UDP
Introdução a Redes de Computadores - 5 - Nível de Transporte - UDPIntrodução a Redes de Computadores - 5 - Nível de Transporte - UDP
Introdução a Redes de Computadores - 5 - Nível de Transporte - UDPAndre Peres
 
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)Andre Peres
 
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCP
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCPIntrodução a Redes de Computadores - 4 - Nível de Aplicação DHCP
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCPAndre Peres
 
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)Andre Peres
 
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)Andre Peres
 
4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equipsAndre Peres
 
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacaoAndre Peres
 
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)Andre Peres
 
6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissaoAndre Peres
 
Introdução a Redes de Computadores - 1 - Introdução
Introdução a Redes de Computadores - 1 - IntroduçãoIntrodução a Redes de Computadores - 1 - Introdução
Introdução a Redes de Computadores - 1 - IntroduçãoAndre Peres
 
06 - Redes sem Fios - seguranca
06 - Redes sem Fios -  seguranca06 - Redes sem Fios -  seguranca
06 - Redes sem Fios - segurancaAndre Peres
 
Aula 11 protocolos e comunicação
Aula 11   protocolos e comunicaçãoAula 11   protocolos e comunicação
Aula 11 protocolos e comunicaçãocamila_seixas
 
Cabeamento 5 componentes do cabeamento estruturado
Cabeamento 5   componentes do cabeamento estruturadoCabeamento 5   componentes do cabeamento estruturado
Cabeamento 5 componentes do cabeamento estruturadoPaulo Fonseca
 
1 - Segurança - introducao
1 - Segurança - introducao1 - Segurança - introducao
1 - Segurança - introducaoAndre Peres
 
1 - redes de computadores - introção a redes de computadores e topologias
1 - redes de computadores - introção a redes de computadores e topologias1 - redes de computadores - introção a redes de computadores e topologias
1 - redes de computadores - introção a redes de computadores e topologiasAndre Peres
 
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)Andre Peres
 
5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls 5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls Andre Peres
 
Internet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetInternet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetAndre Peres
 
2 - Redes de Comutadores - acesso meio
2 - Redes de Comutadores -  acesso meio2 - Redes de Comutadores -  acesso meio
2 - Redes de Comutadores - acesso meioAndre Peres
 
3 - Redes de Comutadores - ethernet wifi
3 - Redes de Comutadores -  ethernet wifi3 - Redes de Comutadores -  ethernet wifi
3 - Redes de Comutadores - ethernet wifiAndre Peres
 

Destaque (20)

Introdução a Redes de Computadores - 5 - Nível de Transporte - UDP
Introdução a Redes de Computadores - 5 - Nível de Transporte - UDPIntrodução a Redes de Computadores - 5 - Nível de Transporte - UDP
Introdução a Redes de Computadores - 5 - Nível de Transporte - UDP
 
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)
Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)
 
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCP
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCPIntrodução a Redes de Computadores - 4 - Nível de Aplicação DHCP
Introdução a Redes de Computadores - 4 - Nível de Aplicação DHCP
 
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)
Introdução a Redes de Computadores - 7 - Nível de Transporte - TCP (p2)
 
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)
Introdução a Redes de Computadores - 2 - Nível de aplicação (HTTP)
 
4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips
 
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
 
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p1)
 
6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao
 
Introdução a Redes de Computadores - 1 - Introdução
Introdução a Redes de Computadores - 1 - IntroduçãoIntrodução a Redes de Computadores - 1 - Introdução
Introdução a Redes de Computadores - 1 - Introdução
 
06 - Redes sem Fios - seguranca
06 - Redes sem Fios -  seguranca06 - Redes sem Fios -  seguranca
06 - Redes sem Fios - seguranca
 
Aula 11 protocolos e comunicação
Aula 11   protocolos e comunicaçãoAula 11   protocolos e comunicação
Aula 11 protocolos e comunicação
 
Cabeamento 5 componentes do cabeamento estruturado
Cabeamento 5   componentes do cabeamento estruturadoCabeamento 5   componentes do cabeamento estruturado
Cabeamento 5 componentes do cabeamento estruturado
 
1 - Segurança - introducao
1 - Segurança - introducao1 - Segurança - introducao
1 - Segurança - introducao
 
1 - redes de computadores - introção a redes de computadores e topologias
1 - redes de computadores - introção a redes de computadores e topologias1 - redes de computadores - introção a redes de computadores e topologias
1 - redes de computadores - introção a redes de computadores e topologias
 
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)
Introdução a Redes de Computadores - 9 - Nível de Rede - IP (p2)
 
5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls 5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls
 
Internet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetInternet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da Internet
 
2 - Redes de Comutadores - acesso meio
2 - Redes de Comutadores -  acesso meio2 - Redes de Comutadores -  acesso meio
2 - Redes de Comutadores - acesso meio
 
3 - Redes de Comutadores - ethernet wifi
3 - Redes de Comutadores -  ethernet wifi3 - Redes de Comutadores -  ethernet wifi
3 - Redes de Comutadores - ethernet wifi
 

Semelhante a Introdução a Sockets em PHP

PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
Mini Palestra: PHP no mundo mobile
Mini Palestra: PHP no mundo mobileMini Palestra: PHP no mundo mobile
Mini Palestra: PHP no mundo mobileMaurílio Silva
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e MonitorizaçãoSAPO Sessions
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connectionArmando Daniel
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeIgor Nicoli
 
DoS: Negação de Serviço e formas de defesa - Elgio Schlemer
DoS: Negação de Serviço e formas de defesa - Elgio SchlemerDoS: Negação de Serviço e formas de defesa - Elgio Schlemer
DoS: Negação de Serviço e formas de defesa - Elgio SchlemerTchelinux
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixJanssen Lima
 
Você não deveria escrever uma API para isso
Você não deveria escrever uma API para issoVocê não deveria escrever uma API para isso
Você não deveria escrever uma API para issoJunior Conte
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)PAULO R. DEOLINDO JUNIOR
 

Semelhante a Introdução a Sockets em PHP (20)

Java network-sockets-etc
Java network-sockets-etcJava network-sockets-etc
Java network-sockets-etc
 
Socket
SocketSocket
Socket
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Mini Palestra: PHP no mundo mobile
Mini Palestra: PHP no mundo mobileMini Palestra: PHP no mundo mobile
Mini Palestra: PHP no mundo mobile
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Palestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDOPalestra PHPSP+Locaweb 2014 - PDO
Palestra PHPSP+Locaweb 2014 - PDO
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connection
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
 
DoS: Negação de Serviço e formas de defesa - Elgio Schlemer
DoS: Negação de Serviço e formas de defesa - Elgio SchlemerDoS: Negação de Serviço e formas de defesa - Elgio Schlemer
DoS: Negação de Serviço e formas de defesa - Elgio Schlemer
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do Zabbix
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Você não deveria escrever uma API para isso
Você não deveria escrever uma API para issoVocê não deveria escrever uma API para isso
Você não deveria escrever uma API para isso
 
Sockets java
Sockets javaSockets java
Sockets java
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
 

Mais de Andre Peres

04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisicoAndre Peres
 
05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlaceAndre Peres
 
03- Redes sem Fios - antenas
03- Redes sem Fios -  antenas03- Redes sem Fios -  antenas
03- Redes sem Fios - antenasAndre Peres
 
01 - Redes sem Fios - introducao
01 - Redes sem Fios -  introducao01 - Redes sem Fios -  introducao
01 - Redes sem Fios - introducaoAndre Peres
 
02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondasAndre Peres
 
10 - segurança -snmp
10  - segurança -snmp10  - segurança -snmp
10 - segurança -snmpAndre Peres
 
8 - segurança - anatomia ataques
8 - segurança - anatomia ataques8 - segurança - anatomia ataques
8 - segurança - anatomia ataquesAndre Peres
 
9 - segurança - ataques buffer-injection
9 - segurança -  ataques buffer-injection9 - segurança -  ataques buffer-injection
9 - segurança - ataques buffer-injectionAndre Peres
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpnAndre Peres
 
6 - segurança - criptografia
6   - segurança - criptografia6   - segurança - criptografia
6 - segurança - criptografiaAndre Peres
 
5 - segurança - firewall
5  - segurança - firewall5  - segurança - firewall
5 - segurança - firewallAndre Peres
 
4 - segurança - mecanismos
4 - segurança - mecanismos4 - segurança - mecanismos
4 - segurança - mecanismosAndre Peres
 
3 - segurança - psi
3 - segurança - psi3 - segurança - psi
3 - segurança - psiAndre Peres
 
2 - segurança - analise de-riscos
2 - segurança - analise de-riscos2 - segurança - analise de-riscos
2 - segurança - analise de-riscosAndre Peres
 

Mais de Andre Peres (14)

04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico
 
05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace
 
03- Redes sem Fios - antenas
03- Redes sem Fios -  antenas03- Redes sem Fios -  antenas
03- Redes sem Fios - antenas
 
01 - Redes sem Fios - introducao
01 - Redes sem Fios -  introducao01 - Redes sem Fios -  introducao
01 - Redes sem Fios - introducao
 
02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas
 
10 - segurança -snmp
10  - segurança -snmp10  - segurança -snmp
10 - segurança -snmp
 
8 - segurança - anatomia ataques
8 - segurança - anatomia ataques8 - segurança - anatomia ataques
8 - segurança - anatomia ataques
 
9 - segurança - ataques buffer-injection
9 - segurança -  ataques buffer-injection9 - segurança -  ataques buffer-injection
9 - segurança - ataques buffer-injection
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpn
 
6 - segurança - criptografia
6   - segurança - criptografia6   - segurança - criptografia
6 - segurança - criptografia
 
5 - segurança - firewall
5  - segurança - firewall5  - segurança - firewall
5 - segurança - firewall
 
4 - segurança - mecanismos
4 - segurança - mecanismos4 - segurança - mecanismos
4 - segurança - mecanismos
 
3 - segurança - psi
3 - segurança - psi3 - segurança - psi
3 - segurança - psi
 
2 - segurança - analise de-riscos
2 - segurança - analise de-riscos2 - segurança - analise de-riscos
2 - segurança - analise de-riscos
 

Último

02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 anoAdelmaTorres2
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfAnaGonalves804156
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 

Último (20)

02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 

Introdução a Sockets em PHP

  • 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
  • 6. • Socket UDP (servidor): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_bind($socket, "0.0.0.0", "100"); while(1) { socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nMensagem recebida: $buf do cliente: $from:$port n"; socket_set_nonblock($socket); $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); $bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port); } ?> Sockets
  • 7. • Socket UDP (servidor): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_bind($socket, "0.0.0.0", "100"); while(1) { socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nMensagem recebida: $buf do cliente: $from:$port n"; socket_set_nonblock($socket); $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); $bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port); } ?> Sockets socket (IPv4 , datagrama , UDP)
  • 8. • Socket UDP (servidor): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_bind($socket, "0.0.0.0", "100"); while(1) { socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nMensagem recebida: $buf do cliente: $from:$port n"; socket_set_nonblock($socket); $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); $bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port); } ?> Sockets bind (IP , porta)
  • 9. • Socket UDP (servidor): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_bind($socket, "0.0.0.0", "100"); while(1) { socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nMensagem recebida: $buf do cliente: $from:$port n"; socket_set_nonblock($socket); $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); $bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port); } ?> Sockets recebe dados do socket
  • 10. • Socket UDP (servidor): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_bind($socket, "0.0.0.0", "100"); while(1) { socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nMensagem recebida: $buf do cliente: $from:$port n"; socket_set_nonblock($socket); $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); $bytes_sent = socket_sendto($socket, $buf, $len, 0, $from, $port); } ?> Sockets envia dados para o socket
  • 11. • Socket UDP (cliente): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_set_nonblock($socket); $msg = "Ola Servidor!"; $len = strlen($msg); $bytes_sent = socket_sendto($socket, $msg, $len, 0, "127.0.0.1", "100"); socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nRecebido: $buf de $from:$portnn"; socket_close($socket); echo "Fim!n"; ?> Sockets
  • 12. • Socket UDP (cliente): <?php $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_set_nonblock($socket); $msg = "Ola Servidor!"; $len = strlen($msg); $bytes_sent = socket_sendto($socket, $msg, $len, 0, "127.0.0.1", "100"); socket_set_block($socket); $bytes_received = socket_recvfrom($socket, $buf, 65536, 0, $from, $port); echo "nRecebido: $buf de $from:$portnn"; socket_close($socket); echo "Fim!n"; ?> Sockets envia dados diretamente para o socket especificando IP e porta destinos (não tem bind)
  • 13. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets
  • 14. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets socket (IPv4 , fluxo , TCP)
  • 15. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets bind (IP , porta)
  • 16. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets coloca o socket em estado: LISTEN
  • 17. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets quando receber o SYN, aceita a conexão
  • 18. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets recebe dados do socket
  • 19. • Socket TCP (servidor): <?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, "0.0.0.0", "100"); socket_listen($socket, 3); while (1) { $spawn = socket_accept($socket); $buf = ''; $buf = socket_read($spawn, 1024); echo "nMensagem recebida: $bufn"; $buf = "Recebi sua mensagem: ".$buf; $len = strlen($buf); socket_write ($spawn, $buf, $len); echo "Mensagem enviada!n"; socket_close ($spawn); } ?> Sockets envia dados para o socket
  • 20. • 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
  • 21. • 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 socket (IPv4 , fluxo , TCP)
  • 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]
  • 30. Sockets • Socket pair no windos → comando netstat -an
  • 31. Sockets • Socket pair no linux → comando netstat -ltuna