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

2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 

Último (20)

2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 

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