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

C++ Discussion :

Socket client serveur


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Par défaut Socket client serveur
    Bonjour,

    Je cherche a lier 2 programmes (en l'occurence un programme en c++ et une page HTML via un socket). J'essais donc de développer une socket client / serveur Mais ce que je ne comprends pas c'est ou dois-je mettre le code de mes programmes de bases?

    Merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Bonsoir,

    Ça ne veut pas dire grand chose.

    Un programme en C++, ok. Une « page HTML », par contre, ce n'est pas un programme. Donc soit, tu parles du script qui la génère éventuellement (généralement en PHP), soit tu parles d'un programme embarqué dans ta page (généralement Javascript), soit tu parles encore d'autre chose mais à toi d'être plus précis.

  3. #3
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Bonjour,

    Citation Envoyé par Obsidian Voir le message
    Un programme en C++, ok. Une « page HTML », par contre, ce n'est pas un programme. Donc soit, tu parles du script qui la génère éventuellement (généralement en PHP), soit tu parles d'un programme embarqué dans ta page (généralement Javascript), soit tu parles encore d'autre chose mais à toi d'être plus précis.
    Il parle peut-être des WebSocket du HTML5?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Par défaut
    Bonjour et merci d'avoir répondu,

    Oui je pense effectivement que c'est d'une websocket dont j'ai besoin.

    Je me réexplique :
    Ce que je voudrais faire :
    -> J'ai mon code html qui genere une page et je voudrais pouvoir lier cette page avec un programme écrit en C++.
    Quand je clique sur "valider" de la page, elle doit envoyer les données entrées dans mon formulaire au programme en c++ qui lui doit traiter ces données et ressortir une page.



    Contraintes:
    -> ne pas utiliser du PHP.
    -> utiliser des sockets

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Citation Envoyé par paulof Voir le message
    Bonjour et merci d'avoir répondu,
    Oui je pense effectivement que c'est d'une websocket dont j'ai besoin.
    Ça m'étonnerait. C'est trop récent pour être vraiment pertinent. Sauf s'il s'agit d'un T.P. explicite sur le sujet, mais dans ce cas, ce doit être écrit noir sur blanc. Si ce n'est pas le cas, oublie-les.

    Je me réexplique : Ce que je voudrais faire :
    -> J'ai mon code html qui genere une page et je voudrais pouvoir lier cette page avec un programme écrit en C++. Quand je clique sur "valider" de la page, elle doit envoyer les données entrées dans mon formulaire au programme en c++ qui lui doit traiter ces données et ressortir une page.
    Ton code HTML ne « génère » pas une page. Il décrit le contenu d'une page existante. À moins qu'il y ait du Javascript à l'intérieur qui la modifie en temps réel, mais je ne pense pas que ce soit ton cas non plus.

    Sinon, ce que tu veux faire se traite via une CGI : l'URL que tu vas appeler depuis ton navigateur est celle d'un fichier qui, en réalité, est un exécutable. Celui-ci peut effectivement être écrit en C++ (j'avais écrit et géré une application de ce genre, écrite en C++ également, d'environ 38000 lignes). Ton serveur web va lancer cet exécutable, et c'est à celui-ci de lire les données que le serveur lui transmet et de répondre en envoyant du code HTML sur la sortie standard (avec les headers HTTP) tout bêtement.

    Contraintes:
    -> ne pas utiliser du PHP.
    -> utiliser des sockets
    Ça me laisse perplexe quand même. Tu peux nous donner ton énoncé ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Par défaut
    Citation Envoyé par Énoncé
    Le programme sera un serveur Web écrit en C++ et écoutant grâce à un socket un port prédéfini. Le programme doit émettre vers tout navigateur qui s'y connecterait un formulaire Web comportant des champs que l'utilisateur doit remplir. Le formulaire comporte également un bouton pour soumettre le contenu du formulaire et obtenir une réponse du serveur. Cette réponse est une page Web simple contenant le texte résultant du programme.
    Voila le sujet.

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Ah d'accord ! Ton programme C++ est censé être lui-même le mini-serveur web. D'où l'utilisation des sockets, en effet.

    Par contre, il n'y a aucune programmation réseau à effectuer dans le code HTML proprement dit ou du côté du client.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Par défaut
    Si j'ai bien compris, je met mon programme C++ dans le socket coté serveur web? Et donc coté client j'ai quoi ? mon texte html?

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Citation Envoyé par paulof Voir le message
    Si j'ai bien compris, je met mon programme C++ dans le socket coté serveur web?
    Non seulement tu vas mettre ton programme exécutable du côté du serveur web, mais ce sera lui, le serveur ! Exit, donc, Apache et compagnie. C'est ton programme qui va se mettre à l'écoute d'un port TCP sur la machine serveur, idéalement du port 80. Mais bon : pour pouvoir utiliser le port 80, il faudra être root et tu risques d'entrer en conflit avec quelque chose qui tourne déjà à côté. Donc, choisis un port au delà de 1024.

    Et donc coté client j'ai quoi ? mon texte html?
    Côté client, tu n'as rien d'autre que ton navigateur web habituel qui va se connecter à ton serveur, sans savoir que c'est ton programme qui lui répond et pas un serveur web habituel comme Apache ou IIS.

    C'est donc à ton serveur de traiter la requête initiale, de lire les headers HTTP, d'envoyer du code HTML pré-écrit pour afficher un formulaire dans la fenêtre du client, de reconnaître la requête POST ou GET venant de ton formulaire lorsque le client aura cliqué sur le bouton et, enfin, d'agir en conséquence.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Par défaut
    D'accord Merci.
    Mais si le client c'est le navigateur justement comment puis-je récupérer les données de POST ou GET du formulaire ??

  11. #11
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Citation Envoyé par paulof Voir le message
    D'accord Merci.
    Mais si le client c'est le navigateur justement comment puis-je récupérer les données de POST ou GET du formulaire ??
    Soit en utilisant les bibliothèques idoine si ton prof' te laisse le faire, soit en ré-implémentant toi-même les grandes lignes du protocole HTTP. C'est bien l'objet du T.P. : écrire un nano-serveur Web.

    Ce n'est pas très difficile en soi, mais ça peut être très long si tu comptes l'implémenter en entier. Heureusement, le T.P. n'implique que d'écrire ce qui est nécessaire pour le traitement du formulaire que tu vas toi-même envoyer.

    D'où la première question, sais-tu déjà comment fonctionnent les serveurs Web en général et comment se passe une transaction lorsque tu interroges un site web ordinaire au quotidien ?

Discussions similaires

  1. Socket client serveur
    Par ppphil dans le forum C#
    Réponses: 1
    Dernier message: 08/09/2007, 10h57
  2. [C] Probleme avec socket client-serveur TCP
    Par LinuxUser dans le forum Réseau
    Réponses: 33
    Dernier message: 15/05/2007, 22h26
  3. [socket] client/serveur multi-thred
    Par iag_1980 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 03/03/2007, 15h38
  4. socket client serveur
    Par idino dans le forum Réseau
    Réponses: 3
    Dernier message: 29/01/2007, 14h45
  5. Socket client serveur
    Par rhdjml dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2006, 12h09

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