Export depuis serveur web - C - Programmation
Marsh Posté le 10-02-2014 à 15:08:45
1) C'est pas un serveur web mais tcp
2) le code perl est transparent:
creation d'une socket
socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
et ouverture
connect(SERVER, sockaddr_in($MODBUS_PORT, $server_ip)
creation d'une requête (encodage des parametres dans un paquet ad-hoc)
envoi de la requête
send(SERVER, $tx_buffer, 0);
reception, sur lequel on parse d'abord l'en-tête
recv(SERVER, $rx_buffer, 7, 0);
et le reste après verification de l'en tete
recv(SERVER, $rx_buffer, $rx_hd_length-1, 0);
decodage des données de la réponse.
fermeture de la socket
close SERVER;
Bref du code réseau complètement standard.
A+,
Marsh Posté le 10-02-2014 à 15:10:39
oui,
c'est vrai, code réseau standard, quand on connait le PERL,
j'ai que 5-6 heures de Perl à mon actif, et donc je débute encore . . .
Si j'ai des questions, je n'hesiterai pas à revenir ici, c'est super comme forum et rapide ^^
merci gilou
Marsh Posté le 10-02-2014 à 17:18:26
clubber43 a écrit : c'est vrai, code réseau standard, quand on connait le PERL |
Quand on connait l'API des sockets BSD pour être exact (http://en.wikipedia.org/wiki/Berkeley_sockets), en général c'est relativement indépendant du langage (bien que l'API ait été faite pour du C à la base). J'ai l'impression que tu ne connais pas cette API, lorsque tu dis dans un de tes messages :
clubber43 a écrit : je ne savais pas que l'on pouvait travailler directement sur les TCP en C / C++ . . . |
Bon, va falloir t'y mettre alors, parce le code C sera très similaire au code PERL qui a été posté. Le nom des fonctions et leurs arguments sont pareils. Les quelques trucs spécifiques à PERL sont la construction de la requète et l'analyse de la réponse.
Cette API date un peu, il y a quelques aspects archaïques, mais sa tient retivement bien la route pour un truc aussi vieux.
Marsh Posté le 11-02-2014 à 17:04:41
En cherchant un peu, on découvre l'existence d'une librairie "multiplateforme" libmodbus qui fait le boulot simplement
Pour faire votre requête spécifique:
Code :
|
Multiplateforme est avec des "" parce que c'est pas ainsi que je qualifie du code qui ne se compile qu'avec Cygwin sous Windows..
A+,
Marsh Posté le 10-02-2014 à 13:38:47
Bonjour,
J'ai deja ouvert un post sur la partie prog en PERL pour l'export de données
depuis un serveur web. après pas mal de recherche, je vais faire ce programme en C.
http://forum.hardware.fr/hfr/Progr [...] m#t2219083
Si quelqu'un passe par là, j'ai les bases de C et C++ et je debute en PERL . . .
Merci
ju