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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| <?
// Autorise l'exécution infinie du script, en attente de connexion.
set_time_limit(0);
// Active le vidage implicite des buffers de sortie, pour que nous
// puissions voir ce que nous lisons au fur et à mesure.
ob_implicit_flush();
//$address = '192.0.1.42';
$address = '192.168.1.15';
$port = 8061;
$ip = $_SERVER["REMOTE_ADDR"];
// Crée la socket
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() a échoué : raison : " . socket_strerror($sock) . "\n";
}
// Lie un nom à la socket
if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "socket_bind() a échoué : raison : " . socket_strerror ($ret) . "\n";
}
// Ouvre la socket sur le port
if (($ret = socket_listen($sock, 5)) < 0) {
echo "socket_listen() a échoué : raison : " . socket_strerror ($ret) . "\n";
}
// Accepte la connexion
if (($msgsock = socket_accept($sock)) < 0) {
echo "socket_accept() a échoué : raison : " . socket_strerror ($msgsock) . "\n";
}
// Crée la socket
if (false === ($buf = socket_read($msgsock, 2048))) {
echo "socket_read() a échoué : raison : " . socket_strerror ($ret) . "\n";
}
socket_close($msgsock);
socket_close($sock);
// On définit les chemins
$uploadpath = 'C:\\Inetpub\\wwwroot\\winpharma\\tests\\final\\tmp\\';
$name = 'commande.xml';
$fichier=$uploadpath.$name;
// Ecriture du flux dans un fichier
if(!is_dir($uploadpath)) mkdir($uploadpath); // On vérifie si le répertoire existe
$fp = fopen($fichier,"w");
$pos = strrpos($buf, "<?xml");
$xml = substr($buf,$pos);
fputs($fp, $xml);
fclose($fp);
// Chargement du fichier
$dom_=new DOMDocument();
$dom_->load($fichier);
if(!$dom_){
echo'Erreur ouverture fichier<br>';
exit;
}else{
$st=$dom_->saveXML();
include("winpharma/tests/final/xmlrpc.inc");
//connexion au serveur
$client=new xmlrpc_client("/winpharma/tests/final/serveur.php", "192.0.1.42", 80);
//mode de debug désactivé pour l'activer enlever le commentaire ci-dessous
//$client->setDebug(1);
//début traitement commande
$message0=new xmlrpcmsg('supprimerTemp', array(new xmlrpcval($name)));
$Reponse0=$client->send($message0);
if(($Reponse0->faultCode())==0){ //succès
$valeur = $Reponse0->serialize();
//echo 'Réponse : '.$valeur;
}else{
//echo 'Erreur : '.$Reponse0->faultString();
}
$message2=new xmlrpcmsg('enregistreXML', array(new xmlrpcval($name), new xmlrpcval($st)));
$Reponse2=$client->send($message2);
$nomfichimport="";
if(($Reponse2->faultCode())==0){ //succès
$valeur = $Reponse2->serialize();
$resp=explode("|",$valeur);
$tmp=explode("<",$resp[1]);
$nomfichimport=$tmp[0];
$name=$resp[2];//a ver
//echo '<br>Réponse : '.$resp[0];
}else{
//echo '<br>Erreur : '.$Reponse2->faultString();
exit;
}
$message1=new xmlrpcmsg('test.connexion', array(new xmlrpcval($ip), new xmlrpcval($name)));
$Reponse1=$client->send($message1);
if( ($Reponse1->faultCode())==0){ //succès
$valeur = $Reponse1->serialize();
//echo '<br>Réponse : '.$valeur;
}else{
//echo '<br>Erreur : '.$Reponse1->faultString();
}
//Affichage du retour XML
echo $resp[3];
}
?> |
Partager