Envoyer message en UDP... Comment faire?
7 messages
• Page 1 sur 1
-

OJAL - WRInaute passionné

- Messages: 1178
- Inscription: 10 Avr 2003
Envoyer message en UDP... Comment faire?
Bonjour,
Je souhaite piloter des composant électroniques par l'intermédiaire de composants manipulables depuis une simple page web.
Le coeur du système sera piloté par un micro-contrôleur, en l’occurrence un ARDUINO, mais ceci n'est pas le débat ici
Il faut 'juste' retenir que le micro-contrôleur est capable de recevoir des messages UDP.
En sophistiquant un peu la page web, l'utilisation de javascript permettra certainement d'aller beaucoup plus loin...
Pour valider la chaîne de pilotage je voudrais qu'un slider dans le genre de celui-ci http://docs.jquery.com/UI/Slider me permette de renvoyer vers mon micro-contrôleur des valeurs qui seront ensuite traîtées...
Mais voila, l'UDP me cause un peu comme moyen de transport des informations, mais rien de très concrêt...
Aussi, avez-vous une idée de comment je peux envoyer des info en UDP à mon micro-contrôleur?
Je vous remercie par avance pour votre aide
Je souhaite piloter des composant électroniques par l'intermédiaire de composants manipulables depuis une simple page web.
Le coeur du système sera piloté par un micro-contrôleur, en l’occurrence un ARDUINO, mais ceci n'est pas le débat ici
Il faut 'juste' retenir que le micro-contrôleur est capable de recevoir des messages UDP.
En sophistiquant un peu la page web, l'utilisation de javascript permettra certainement d'aller beaucoup plus loin...
Pour valider la chaîne de pilotage je voudrais qu'un slider dans le genre de celui-ci http://docs.jquery.com/UI/Slider me permette de renvoyer vers mon micro-contrôleur des valeurs qui seront ensuite traîtées...
Mais voila, l'UDP me cause un peu comme moyen de transport des informations, mais rien de très concrêt...
Aussi, avez-vous une idée de comment je peux envoyer des info en UDP à mon micro-contrôleur?
Je vous remercie par avance pour votre aide
-

MikeR - WRInaute impliqué

- Messages: 586
- Inscription: 9 Jan 2010
Re: Envoyer message en UDP... Comment faire?
Pour une solution serveur, tu peux utiliser php et créer un socket que tu utilises pour envoyer le message UDP.
Voir http://php.net/manual/en/function.socket-create.php
Sinon, pour une solution client, pourquoi utiliser une page web et pas une application?
Voir http://php.net/manual/en/function.socket-create.php
Sinon, pour une solution client, pourquoi utiliser une page web et pas une application?
-

OJAL - WRInaute passionné

- Messages: 1178
- Inscription: 10 Avr 2003
Re: Envoyer message en UDP... Comment faire?
Merci, c'est ce que je cherchais
Je vais tenter d'envoyer un message UDP dès demain
Sinon que veux tu dire par:
Je vais tenter d'envoyer un message UDP dès demain
Sinon que veux tu dire par:
MikeR a écrit:Sinon, pour une solution client, pourquoi utiliser une page web et pas une application?
-

MikeR - WRInaute impliqué

- Messages: 586
- Inscription: 9 Jan 2010
Re: Envoyer message en UDP... Comment faire?
Avec la solution serveur, tu as :
PC Client (page web)======internet=====Serveur(php)=====(réseau) UDP====micro-controleur
Tu pourrais faire aussi :
PC Client (application)================================(réseau) UDP====micro-controleur
au lieu d'application, cela pourrait aussi être un plugin chargé sur la page web (comme font les playeurs multimedia)
PC Client (page web)======internet=====Serveur(php)=====(réseau) UDP====micro-controleur
Tu pourrais faire aussi :
PC Client (application)================================(réseau) UDP====micro-controleur
au lieu d'application, cela pourrait aussi être un plugin chargé sur la page web (comme font les playeurs multimedia)
-

OJAL - WRInaute passionné

- Messages: 1178
- Inscription: 10 Avr 2003
Re: Envoyer message en UDP... Comment faire?
Bonjour,
J'avance, cependant je rencontre certains problèmes
Voici le script PHP que j'utilise :
Ceci m'indique bien qu'en face à l'adresse 192.168.0.19 j'ai quelque chose qui répond...
MAIS
Où puis-je indiquer le port sur lequel je veux adresser le message? La machine en face est programmée pour recevoir sur le port 8888
Je ne comprends pas les paramètres de SOCKET_CREATE
$socket = socket_create(AF_INET, SOCK_RAW, 1);
En suivant la doc je devrais plutôt avoir:
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
Et cela génère un message d'erreur...
Je suis donc un peu perdu et ces test se font en aveugle...
J'imagine qu'il faudrait WIRESHARK pour lire ce qui se passe sur le réseau????
J'avance, cependant je rencontre certains problèmes
Voici le script PHP que j'utilise :
- Code: Tout sélectionner
<?PHP
function ping($host, $timeout = 1) {
/* ICMP ping packet with a pre-calculated checksum */
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00Hello World";
//$package = "Ceci est le message envoyé par UDP";
//$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); // SOCK_DGRAM Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
// Le dernier paramètre de socket_create devrait être SOL_UDP
$socket = socket_create(AF_INET, SOCK_RAW, 1); //
//socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
socket_connect($socket, $host, null);
$ts = microtime(true);
socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255))
$result = microtime(true) - $ts;
else $result = false;
socket_close($socket);
return $result;
}
$adresse_a_pinguer = "192.168.0.19";
$res = ping ($adresse_a_pinguer);
echo $res;
?>
Ceci m'indique bien qu'en face à l'adresse 192.168.0.19 j'ai quelque chose qui répond...
MAIS
Où puis-je indiquer le port sur lequel je veux adresser le message? La machine en face est programmée pour recevoir sur le port 8888
Je ne comprends pas les paramètres de SOCKET_CREATE
$socket = socket_create(AF_INET, SOCK_RAW, 1);
En suivant la doc je devrais plutôt avoir:
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
Et cela génère un message d'erreur...
Je suis donc un peu perdu et ces test se font en aveugle...
J'imagine qu'il faudrait WIRESHARK pour lire ce qui se passe sur le réseau????
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Envoyer message en UDP... Comment faire?
Regarde un peu les exemples dans les notes sur la doc de socket_create, tu devrais trouver ton bonheur. L'exemple que tu as pris est en ICMP (ping utilise un paquet ICMP echo request, qui demande un paquet ICMP echo reply en retour) et donc ouvre un socket "raw" (IP, quoi) sur lequel il balance des paquets ICMP. Il y a un exemple en UDP juste après.
Tu peux préciser le port soit en utilisant socket_connect (3e paramètre) une fois (et ensuite socket_send), soit en utilisant socket_sendto (plutôt que socket_send) qui te permet de préciser la destination à chaque fois (adresse et port en 5e et 6e paramètres). Dans ton cas, la première solution est probablement la plus simple.
Tu dis que tu as une erreur quand tu essaies de créer un socket UDP, mais tu ne nous dis pas quelle est l'erreur en question...
Jacques.
Tu peux préciser le port soit en utilisant socket_connect (3e paramètre) une fois (et ensuite socket_send), soit en utilisant socket_sendto (plutôt que socket_send) qui te permet de préciser la destination à chaque fois (adresse et port en 5e et 6e paramètres). Dans ton cas, la première solution est probablement la plus simple.
Tu dis que tu as une erreur quand tu essaies de créer un socket UDP, mais tu ne nous dis pas quelle est l'erreur en question...
Jacques.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [Résolu] Comment envoyer un MP ?
- comment envoyer plus de photos
- Comment envoyer un message à tout un cercle Google+ ?
- Créer et envoyer ma première newsletter... comment faire ?
- Envoyer un mail à 500 personnes comment faire?
- Comment envoyer une Invitation dans Gmail ?
- Comment envoyer un message privé d'accueil de manière automatique ?
- Comment envoyer chaque ligne d'un textarea en BDD ?
- [Réglé]Comment envoyer des emails à mes clients
- comment envoyer des mails en html avec yahoo?
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
