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
   |  
<?
 
// 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.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";
	}
do{	
	// 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";
	}
 
 
	/*
	.
	.
	.
	.	[TRAITEMENT => utilisation de $buf et envoi du retour dans $flux]
	.
	.
	.
	*/
 
 
	//Envoi du retour XML
	$contentLength = strlen($flux);
 
	$send = "HTTP/1.1 200 OK\n";
	$send .= "Content-Type: text/xml; charset=utf-8\r\n";
	$send .= "Content-Length: " . $contentLength . "\r\n\r\n";
	$send .= $flux;
	$send .= "\r\n";
 
	socket_write($msgsock, $send, strlen($send));
	socket_shutdown($msgsock,2);
	socket_shutdown($sock,2);
 
}while(true);
 
?> | 
Partager