[socket] message de retour
Bonjour,
j'ouvre un socket a partir d'une page php pour envoyer des données vers un petit serveur Java que j'ai instancié sur mon PC.
J'arrive a envoyer les données, mais dés que je veux lire le message de retour renvoyé par le serveur java vers ma page php via le socket ouvert, plus rien ne fonctionne (ni la lecture ni l'envoi).
La page réagit comme s'il y a avait une boucle infinie.
voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
<?
$port=55555;
$host="xxx.xxx.xxx.xx";
$message = '<?xml version="1.0" encoding="UTF-8"?><java version="1.5.0_07" class="java.beans.XMLDecoder"><object class="ft.modoo.setting"><void property="auth_method"><string>auth_card</string></void><void property="card_id"><string>card_id</string></void><void property="challenge"><string>challenge</string></void><void property="id_auth"><string>xxxxxx</string></void><void property="status"><string>ok</string></void><void property="url_retour"><string>xxx.xxx.xxx.xxx</string></void></object></java>';
$resul=senddata($host,$port,$message);
echo "le resultat est $resul";
function senddata($host,$port,$message) {
$fp = fsockopen("$host", $port, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)";
}
else {
fputs($fp, "$message\r\n");
$result = "";
$mess="";
sleep(1);
$mess=fgets($fp);
$result = str_replace("\r", "", $mess);
$result = str_replace("\n", "", $mess);
fclose ($fp);
return $result;
}
?> |
En fait, je peux faire l'un ou l'autre mais pas les deux en meme temps
Comment dois je faire?