Parcours des périphériques et des services
Cet exemple montre comment obtenir des informations sur tous les périphériques et les services. Une boucle infinie (en utilisant CLI) est démarrée et si un périphérique ou un service disponible est trouvé, la fonction de rappel correspondante sera appelée.
Exemple #1 Recherche tous les périphériques et services UPnP.
<?php
/* Fonction de rappel pour les périphériques disponibles */
function device_proxy_available_cb($proxy, $arg)
{
$info = gupnp_device_info_get($proxy);
$type = $info['device_type'];
$location = $info['location'];
printf("Device available:\n");
printf("\ttype: %s\n", $type);
printf("\tlocation: %s\n", $location);
}
/* Fonction de rappel pour les services disponibles */
function service_proxy_available_cb($proxy, $arg)
{
$info = gupnp_service_info_get($proxy);
$type = $info['service_type'];
$location = $info['location'];
printf("Service available:\n");
printf("\ttype: %s\n", $type);
printf("\tlocation: %s\n", $location);
}
/* Création du contexte UPnP */
$context = gupnp_context_new();
if (!$context) {
printf("Error creating the GUPnP context\n");
exit(-1);
}
/* Nous sommes intéressé par tout ! */
$cp = gupnp_control_point_new($context, "ssdp:all");
/* Définit les fonctions de rappel */
gupnp_control_point_callback_set($cp,
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');
gupnp_control_point_callback_set($cp,
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, 'service_proxy_available_cb');
/* Commence le parcours (boucle infinie, il faut utiliser le raccourci clavier Ctrl-C pour l'interrompre) */
gupnp_control_point_browse_start($cp);
?>
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-gupnp.browsing.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.