IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Communication PHP vers C++


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Par défaut Communication PHP vers C++
    Bonjour à tous,

    Mon problème est simple, j'aimerais transmettre des variables d'un script php qui est sur un serveur web à mon application qui est en c++.

    Pour le sens contraire sa n'a pas été trop dur il suffisait d'envoyer une URL avec les variables C++ au script, mais la j'avoue que je bloque.

    J'ai penser à écrire les variable dans un fichier texte et le lire ensuite avec mon programme mais sa fait un peu bricolage et surtout c'est pas évident a gérer s'il il y a plusieurs accès simultané pour l'écriture de se fichier.

    Merci de votre aide

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par projetge2i Voir le message
    Bonjour à tous,.....
    Houla , une premiére précision, le PHP ne connait pas ton micro et ne sait qu'envoyer en réponse a tes requétes que des éléments HTML
    donc le HTML, du javascript feuilles de style etc ... , c 'est vrais qu'il peut uploader unélément de ton micro ... mais sécurité oblige c'est trés limité !

    Bien sur il serait facile en C de recevoir un paramétre genre lpCmdLine
    mais cela supposerait que ton micro accepte qu'un site web puisse lancer
    c:\truc\tonprog.exe parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int WINAPI WinMain   
    (               
      HINSTANCE hInstance,
      HINSTANCE hPrevInstance,
      PSTR lpCmdLine,
      int nCmdShow
    )

  3. #3
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Pour moi, le mieux est de passer par un socket...

    Créer un socket en écoute permanente sur ton appli en C, et lorsque ton script PHP veut communiquer, ouvrir le socket, envoyer tes data et fermer le socket.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Par défaut
    Merci de vos réponse,
    mais j'ai oublié de préciser que ces transfert doivent etre totalement transparent pour l'utilisateur donc les firewall ne doive rien bloquer.
    C'est pourquoi il faut que je passe par le port 80 si possible.
    Je ne connait pas très bien les socket, estce qu'il le permette ?

    la commande lpcmdline ne me parait pas utilisable dans se cas car comme tu la dis les ordinateurs distant n'accepterais pas.

  5. #5
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Oui, les sockets permettent de passer par le port 80 sans aucune difficulté, mais il n'est évidemment pas possible d'ouvrir ce port si apache l'utilise déjà.

    Cependant, je ne sais pas exactement ce que tu veux faire, mais normalement, de ce que j'ai compris, en aucun cas tu attaques le socket depuis le poste de ton client, mais bien depuis ton serveur apache ! La communication entre apache<->appli C n'est donc pas censé poser de problème de firewall ou autre (surtout si le prog en C et apache sont sur la même machine). Tu peux alors ouvrir n'importe quel port pour communiquer, c'est totalement transparent pour le client. Garde bien a l'esprit que apache ne s'execute que sur ton server, JAMAIS chez le client !

    Dans cette optique, les sockets sont de loin la meilleure solution (mais aussi la plus simple)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Par défaut
    Je ne comprend pas trop ta réponse comode, peut être que c'est moi qui me suis mal exprimé : mon script php est sur un serveur web et mon application en C++ est chez un client.
    Donc lors d'envoi de données du script vers l'application il y a bien un problème de firewall puisque des données rentre chez le client.

    merci de ton aide

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par projetge2i Voir le message
    Je ne comprend pas trop ta réponse comode, peut être que c'est moi qui me suis mal exprimé : mon script php est sur un serveur web et mon application en C++ est chez un client.
    Donc lors d'envoi de données du script vers l'application il y a bien un problème de firewall puisque des données rentre chez le client.

    merci de ton aide
    Houlala !! on réponds trop vite, alors nous revoici avec ce que je craignais, le C est sur le micro client !!! pffffffff ... mission impossible !

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par comode Voir le message
    Oui, les sockets permettent de passer par le port 80 sans aucune difficulté, mais il n'est évidemment pas possible d'ouvrir ce port si apache l'utilise déjà.

    Cependant, je ne sais pas exactement ce que tu veux faire, mais normalement, de ce que j'ai compris, en aucun cas tu attaques le socket depuis le poste de ton client, mais bien depuis ton serveur apache ! La communication entre apache<->appli C n'est donc pas censé poser de problème de firewall ou autre (surtout si le prog en C et apache sont sur la même machine). Tu peux alors ouvrir n'importe quel port pour communiquer, c'est totalement transparent pour le client. Garde bien a l'esprit que apache ne s'execute que sur ton server, JAMAIS chez le client !

    Dans cette optique, les sockets sont de loin la meilleure solution (mais aussi la plus simple)
    Alors ça mille fois OUI, avec toi,
    si le C est sur le serveur c' est plus du tout le même probléme !
    Je n'avais pas compris ça au départ

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par comode Voir le message
    Pour moi, le mieux est de passer par un socket...

    Créer un socket en écoute permanente sur ton appli en C, et lorsque ton script PHP veut communiquer, ouvrir le socket, envoyer tes data et fermer le socket.
    Désolé, aucun systéme ne peut créer une écoute même pas en TCP
    car il te faudrait un systéme genre courrier avec acusé reception
    donc un protocole UDP.

    Mais de quelle entitée vers quelle entitée ?? as tu déjas utilisé ces notions de dialogue ? j' en doute

    Tu crois qu'un micro peut attendre les ordres d'un site web ?? whaou gare aux virus

  10. #10
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Désolé, aucun systéme ne peut créer une écoute même pas en TCP
    car il te faudrait un systéme genre courrier avec acusé reception
    donc un protocole UDP.

    Mais de quelle entitée vers quelle entitée ?? as tu déjas utilisé ces notions de dialogue ? j' en doute

    Tu crois qu'un micro peut attendre les ordres d'un site web ?? whaou gare aux virus
    N'y vois aucune velléité, mais je ne suis pas du tout d'accord avec toi... Bien sur que tu peux ouvrir une connexion depuis apache sur une appli en C si y'a un socket à l'écoute... Car c'est bien ce qui est demandé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d'un script php qui est sur un serveur web à mon application qui est en c++
    Et ça serait pas le 1er fois que je le ferait ! Alors évidemment, il faut prendre garde à la sécurité (bien qu'un firewall soit plus que suffisant pour ce qui est de la sécurité si appliC et serveur web sont sur la même machine), mais techniquement, je ne vois pas le rapport avec l'usage d'UDP...

    Connexion TCP simple, socket simple, un script PHP qui fait un fsock et sans rentrer dans les considérations "quand est-ce qu'on envoi", c'est terminé...

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par comode Voir le message
    N'y vois aucune velléité, mais .......
    Oui oui nos messages se sont croisés

  12. #12
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    ok, fox, on c'était mal compris, et apparemment, je n'avais pas comrpis ce que voulait projetgei non plus :p

    Bon, la solution que je propose marche également très bien si tu mets ton appli en C chez le client a condition que ce dernier ne fasse tourner ni serveur web, ni skype (qui utilisent deja tout 2 le port 80) et que son routeur laisse passer le message...

    C'est a mettre chez tous les clients ?

    Dans tous les cas, aucun routeur ne laissera par defaut entrer une connexion sur la machine de ton client... C'est bien le principe du firewall : ça bloque ce qui rentre et n'est pas explicitement autorisé.

Discussions similaires

  1. [PHP-JS] Communication Javascript vers PHP
    Par wwave dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/02/2006, 18h50
  2. Réponses: 3
    Dernier message: 15/11/2005, 11h07
  3. Communication Javascript vers Flash
    Par wwave dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/11/2005, 11h00
  4. Composants communs entre Ver Entreprise et Professionnelle
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/03/2004, 14h07
  5. Communication dll vers application
    Par portu dans le forum Langage
    Réponses: 8
    Dernier message: 27/02/2004, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo