Jump to content
prograam

Cliente Servidor em php

Recommended Posts

prograam

Então, estou a ter um problema num código de um sistema de conexão entre servidor e cliente no prompt

a minha dúvida é fazer isto:

"O servidor deve enviar uma msg a dizer “ digite sair para terminar ligação”

No cliente quando este escrever “sair” deve enviar um msg ao servidor tipo “adeus vou desligar” e deve fechar a ligação

No servidor depois de receber a mensagem anterior deve fechar todas as ligações."

O código do cliente é:

<?php
error_reporting(E_ALL);
echo "conexão TCP/IP em PHP\n";
echo "Cliente ligado\n";
/*Definir a porta */
$porta = 90000;
/* Crie um Socket*/
$socket_cliente = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
/*associar socket á porta e ip*/
$resultado = socket_connect($socket_cliente,'127.0.0.1',$porta);
/*Ler socket 2048 caracteres*/
$msg = socket_read($socket_cliente,2048,PHP_NORMAL_READ);
echo "$msg";
/* Escrever a password */
$fp_teclado = fopen("php://stdin","r");
$password = fgets($fp_teclado,256);
fclose($fp_teclado);
socket_write($socket_cliente,$password,strlen($password));

/*desligar a ligaçao 2 - R/W*/
socket_shutdown($socket_cliente,2);
/* fechar socket */
socket_close($socket_cliente);
echo "cliente desligado...\n";
?>

Código do Servidor é:

echo "Servidor ligado\n";
/*Definir a porta */
$porta = 90000;
/*Password*/
$password="123";
/* Crie um Socket*/
$socket_servidor = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
/*associar socket á porta e ip*/
$resultado = socket_bind($socket_servidor,'127.0.0.1',$porta);
do{
/*esperar que o cliente se ligue*/
$resultado = socket_listen($socket_servidor,1);
/* aceitar o cliente*/
$socket_cliente = socket_accept($socket_servidor);
/* Mensagem a definir*/
$mensagem = "Introduza a password (123): \n";
/*Escrever no socket*/
socket_write($socket_cliente,$mensagem,strlen($mensagem));
$pass1 = socket_read($socket_cliente,2048,PHP_BINARY_READ);
$pass = Trim($pass1);
$semespaço = strcmp($password,$pass);

if ($semespaço != 0)
{
echo "Password Errada!\nTente Novamente\n";
}
else
{
echo "Password Correcta!\nBem-Vindo !\n";
}
}while (true);

?>

Edited by brunoais
tags code + geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu não percebo a questão visto teres o servidor a pedir a password.

onde está a dificuldade de agora pedir para escrever "xpto" para sair ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
prograam

eu não percebo a questão visto teres o servidor a pedir a password.

onde está a dificuldade de agora pedir para escrever "xpto" para sair ?

O Problema é que não me está a deixar aceder, por exemplo eu quero que o cliente apareça " digite sair para desligar" por exemplo, mas qe quando eu digito sair ele deslige e apareça uma mensagem no servidor a dizer que foram desligadas as ligaçoes, por exemplo, e que quando nao é inserido a palavra sair, que diga para repetir ou assim. mas quando tento faze-lo, não dá, dá-me erros nos sockets do servidor, não percebo. gostava que se podesses que me conseguisses ajudar. obrigado desde já.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.