ola pessoal.
sol novo no guj e na programação principalmente com sockets, e estou com um trabalho onde tenho que fazer um socket servidor listar e mandar arquivos para um socket cliente.
o servidor é este:
<?php
// porta TCP usada pelo servidor
$porta = 10000;
// cria o socket
$s = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or
die("*** Erro na criacao do socket");
socket_set_option($s, SOL_SOCKET, SO_REUSEADDR, 1);
// associa o socket `a porta escolhida
socket_bind($s, 0, $porta) or
die("*** Erro no bind");
// prepara o socket para receber conexoes
socket_listen($s, 16) or
die("*** Erro no listen");
// aguarda uma conexao
$cliente = socket_accept($s) or
die("*** Erro no accept");
// envia uma mensagem inicial ao cliente
$msgout = "Ola, seja bem-vindo!\n\n";
socket_write($cliente, $msgout, strlen($msgout)) or
die("*** Erro no envio de dados");
// repete ate que um dos lados encerre a conexao (com Ctrl-C)
do {
// pede ao usuario que digite uma mensagem
$msgout = "Digite uma mensagem e tecle Enter:\n";
socket_write($cliente, $msgout, strlen($msgout)) or
die("*** Erro no envio de dados");
// espera o usuario enviar a mensagem
$msgin = socket_read($cliente, 5000, PHP_NORMAL_READ) or
die("*** Erro no recebimento de dados");
// mostra a mensagem recebida
echo "Mensagem recebida: " . $msgin . "\n";
//manda mensagen de volta
echo"resposta: ";
$msgout = fgets(STDIN);
} while (true);
?>
e o cliente é este:
<?php
// IP e porta TCP usados pelo servidor
$ip = '10.2.5.2';
$porta = 10000;
// cria o socket
$s = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or
die("*** Erro na criacao do socket");
// conecta-se ao servidor
socket_connect($s, $ip, $porta) or
die("*** Erro no connect");
// repete ate que um dos lados encerre a conexao (com Ctrl-C)
do {
// pede ao usuario que digite uma mensagem
echo "Digite uma mensagem e tecle Enter:\n";
$msg = fgets(STDIN);
// envia a mensagem ao servidor
socket_write($s, $msg, strlen($msg)) or
die("*** Erro no envio de dados");
} while (true);
?>