Ir para conteúdo
Fórum Script Brasil
  • 0

socket tcp em php sem reload na pagina


ktinho

Pergunta

galera é o seguinte sei que em php pode ser criado um servidor de socket tcp como mostra esse link: http://www.php.net/manual/pt_BR/sockets.examples.php

mais nunca vi um chat em php socket sem que seja pelo protocolo ws ou wss então eu queria fazer um servidor de socket em php e a conexao seria feita tambem via php e queria enviar os dados via get ou send sem dar reload na pagina sendo que o php ecoa os dados da variavel msg sem refresh veja um codigo que se conecta com um servidor envia uma mensagem e recebe e sai.

server

#!/usr/bin/php -q
<?php
error_reporting(E_ALL);
echo "Conexao TCP/IP em PHP\n";
/* Defina a porta */
$porta = 8000;
/* Define o host */
$host = gethostbyname("127.0.0.1");
/* Crie um socket */
$socket_servidor = socket_create(AF_INET,SOCK_STREAM,0);
if ($socket_servidor < 0)
{
print "não foi possivel obter socket para conexao com $host\n";
exit;
}
/* De um bind na porta */
$bind = socket_bind($socket_servidor,$host,$porta);
if ($bind < 0)
{    
print "não foi possivel fazer BIND no $host:$porta\n";
exit;
} 
$listen = socket_listen($socket_servidor,5);
if ($listen < 0)
{
print "não foi possivel fazer LISTEN no $host:$porta\n";
exit;
}
$conexao = 0;
print "Aguardando conexoes na porta $porta\n";
while(true)
{
$socket_cliente = socket_accept($socket_servidor);
if ($socket_cliente < 0)
{
print "não foi possivel aceitar conexao com cliente remoto\n";
break;
}
$conexao++;
print "Conexao numero $conexao\n";
$funcao = socket_read($socket_cliente,8);
if ($funcao)
{
print "Funcao: $funcao\n";
if ($funcao == 'LER')
{
$msgler = "Funcao Ler";
socket_write($socket_cliente,$msgler,strlen($msgler));
}
else if ($funcao == 'ESCREVER')
{
$msg = socket_read($socket_cliente,100);
if ($msg)
{
print "Mensagem recebida: $msg\n";
}
}
else
{
print "Funcao não implementada $funcao\n";
}
socket_close($socket_cliente);
}
}
socket_close($socket_servidor);
print "Servidor saindo...\n";
?>
cliente
#!/usr/bin/php -q
<?php
/* Cliente */
error_reporting(E_ALL);
echo "Conexao TCP/IP em PHP\n";
/* Defina a porta */
$porta = 8000;
/* Define o host */
$host = gethostbyname("127.0.0.1");
/* Crie um socket */
$funcao = array("LER","ESCREVER");
for ($n = 0; $n < 2; $n++)
{
$socket_cliente = socket_create(AF_INET,SOCK_STREAM,0);
print "$socket_cliente\n";
if ($socket_cliente < 0)
{
print "não foi possivel obter socket para conexao com $host\n";
exit;
}
/* De um connect na porta */
$connect = socket_connect($socket_cliente,$host,$porta);
if ($connect < 0)
{    
print "não foi possivel conectar no $host:$porta\n";
exit;
} 
print "Conexao $n $host:$porta Funcao : $funcao[$n]\n";
socket_write($socket_cliente,$funcao[$n],strlen($funcao[$n]));
switch($n)
{
case 0 :
$msg = socket_read($socket_cliente,100);
if ($msg)
{
print "Mensagem recebida: $msg\n";
}
break;
case 1 :
$msg = "Minha mensagem";
socket_write($socket_cliente,$msg,strlen($msg));
print "Mensagem enviada\n";
break;
}
socket_close($socket_cliente);
print "Conexao fechada\n";
}
print "Cliente finalizou normal";
?>

queria saber se é possivel criar uma conexao tcp com no browser entre cliente php e server php se não porque se sim como fazer um chat simples?

Editado por ktinho
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...