Bonjour,

J'essaie toujours de comprendre les sockets mais ça rentre doucement.

J'ai essayé d'écrire une petit script pour mettre en pratique mles premieres connaissances mais j'ai encore un petit bug que je n'arrive vraiment pas à résoudre.

Le script est lancé avec par SSH, l'objectif est d'afficher dans la fenetre des navigateurs, l'heure à laquelle la dernière personne s'est connecté à la socket.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
$address='195.195.195.195';
$port=7235;
$clients = array();
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($socket, $address, $port);
socket_listen($socket);
while(true) {
     //Le code se bloque jusqu'à ce qu'une nouvelle connexion cliente est établie
     $client = socket_accept($socket);
     //Lors d'une connexion, le code reprend ici, il est temps de lire ce qu'on nous envoie
     array_push($clients, $client);
     $param = socket_read($client,2300);
     foreach ($clients as $key => $value) {
          if ( is_resource($value) ) {
               $msg = '<script type="text/javascript">document.write(\''.date('H:i:s').'\');</script>';
               socket_write($value, $msg, strlen($msg));
          }
     }
     //socket_close($client);
}
Ensuite je lance un navigateur et je tape l'adresse :
http://195.195.195.195:7235

Mais la page tourne dans le vide sans renvoyer aucun résultat jusqu'a ce que j'arrete le script.

D'où vient mon erreur ?

Merci pour votre aide