problème php sockets
Hors ligneSandalk Le 20/04/2012 à 17:36 Profil de Sandalk Configuration de Sandalk

Bonjour,
Je suis un train de créer un petit programme de communication (serveur/client) avec sockets en php et j'ai un petit problème.
Mon client envoie des données au serveur et si celui ci les a bien reçu, il renvoie au client un accusé (ack=1). toutefois, j'aimerais que si le message n'est pas recu au bout d'un certain temps $timeout, le client renvoie le message de données.
Je vous mets ici mes codes:
pour le serveur:
 

$info = stream_get_meta_data($socket_reception);  
$socket_envoi = creation_stream_socket_envoi($addrc, $port);  
if ($info=TRUE) {  
//envoi de l'ack=1  
$ack=1;  
envoi_donnees($socket_envoi, $ack);}  
else {  
//envoi de l'ack=0  
$ack=0;  
envoi_donnees($socket_envoi, $ack);


pour le client:
 

// reception de l'ack  
$socket_reception = creation_stream_socket_reception($addrc, $port);  
reception_acknowledge($socket_reception);  

stream_set_timeout ( $socket_reception , $timeout );  
$info = stream_get_meta_data($socket_reception);   
if ($info['timed_out']= false) {   
$donnees='Bonjour je vous envoie un message';  
envoi_donnees($socket_envoi, $donnees);}


C'est au niveau du dernier paragraphe que j'ai un soucis.


Par ailleurs, si l'acknowledge retourné vaut 1 j'aimerais que le client renvoie un accusé. Voici le code:
 

info = stream_set_read_buffer ($socket_reception,1);  
//envoi confirmation ack  
if ($info='1') {  
$donnees='Ack bien reçu';  
envoi_donnees($socket_envoi, $donnees);}

Apparemment la condition sur ce code ne fonctionne pas, pourriez-vous m'indiquer quelle fonction utiliser pour 'lire' le contenu de la socket ?
 

Je vous remercie par avance pour votre aide

Hors ligneSandalk Le 30/04/2012 à 22:14 Profil de Sandalk Configuration de Sandalk

quelqu'un aurait-il des conseils à me donner ?

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels