Voilà, j'ai déjà laissé un message concernant les sockets en php et que je n'y connaissait rien. Maintenant j'ai réussi a crée un client qui fonctionne à l'aide de l'include que j'ai trouvé dans ce site.
Voilà le source du client:
<?php
// client //
include("socketnet.php");
echo "<h2>Connexion TCP/IP</h2>","\n";
$sock->debug = TRUE;
/* le port */
$port = 4001;
/* l'adresse IP du serveur de destination */
$address = "192.168.0.203";
/* Cree une socket TCP/IP. */
// creation de la socket
$sock = new socket (AF_INET, SOCK_STREAM, 0);
if ($sock < 0) {
echo "socket ne fonctionne pas\n\n";
} else {
echo " Creation de la socket OK.\n\n";
}
echo "Essai de connexion a l adresse '$address' sur le port numero '$port'...";
// demande de connexion
$sock -> Socket ($address, $port, timeout);
if ($sock < 0) {
echo "socket_connect() a : ($sock) " . socket_strerror($sock) . "\n\n";
} else {
echo " Connexion OK.\n\n";
}
// Envoi d'une requete
$sock -> puts ("m", newline); //envoi caractère
?>
Maintenant mon souci est de créer le serveur qui va avec le client et je ne trouve pas les fonctions nécessaires où je ne sais pas bien me servir des fonctiions du fichier include.
Si vous pouviez m'aider ce serait super sympa car ça compte pour mon exam.Merci
Voilà le fichier include
<?php
class Socket
var $id = 0; // id de la connexion
var $msg;
var $errno; // n° d'erreur
var $errstr; // message d'erreur correspondant au n°
var $debug = false; // si debug alors sortie de se qui ce passe :p
var $defaultlength = 4048;
/* Constructeur : établit la connexion */
function Socket($adress, $port, $timeout = null) {
if (!$timeout)
$this->id = fsockopen($adress, $port, $this->errno, $this->errstr);
else
$this->id = fsockopen($adress, $port, $this->errno, $this->errstr, $timeout);
if ($this->debug)
echo "Connexion a $adress sur le port $port (" . $this->id . ")\n<br>";
}
/* Envoi la chaine $string, avec un retour chariot si $newline n'est pas specifié comme false */
function puts($string, $newline = true) {
if ($this->debug)
echo nl2br("<font color=\"red\">" . htmlentities($string) . "</font>\n");
if ($newline)
fputs($this->id, $string . "\r\n");
else
fputs($this->id, $string);
}
/* Récuperre une chaine de $length caractères (ou $defaultlength) depuis le serveur */
function gets($length = null) {
if (!$length)
$length = $this->defaultlength;
$string = fgets($this->id, $length);
if ($this->debug)
echo nl2br("<font color=\"blue\">" . htmlentities($string) . "</font>");
return $string;
}
/* Retourne vrai si fin de "fichier" */
function eof() {
return feof($this->id);
}
/* Regle le timeout dynamiquement -> temps de connexion */
function set_timeout($value) {
socket_set_timeout($this->id);
}
/* Retourne un tableau avec des infos diverses sur la connexion */
/*function status() {
return socket_get_status($this->id);
} */
/* Lit la socket jusqu'à la fin, la ferme et retourne ce qui a été lu */
function passthru() {
$string = fpassthru($this->id);
if ($this->debug) {
echo nl2br("<font color=\"blue\">" . htmlentities($string) . "</font>");
echo "Fermeture de la connexion (" . $this->id . ")\n<br>";
}
$this->id = 0;
$this->errno = 0;
$this->errstr = "";
return $string;
}
/* Ferme la connexion */
function close() {
if ($this->debug)
echo "Fermeture de la connexion (" . $this->id . ")\n<br>";
fclose($this->id);
$this->id = 0;
$this->errno = 0;
$this->errstr = "";
}
}
?>