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 :

[Net] Creation serveur HTTP en C++


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut [Net] Creation serveur HTTP en C++
    Bonjour,
    en gros ...

    je dois creer un serveur HTTP pour recevoir des messages d'autres PC.
    je ne sais absolument pas par ou commencer...

    je me doute bien que je dois creer un serveur HTTP en C++, mais je ne sais pas comment faire ... et apres je vais devoir ecouter les message, mais c'est deja une autre histoire.

    donc voila, je developpe en C++ sous VC6

    merci d'avance

    Yann

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Attention il est différent de concevoir un "serveur HTTP", qu'une "application serveur" !

    Un serveur HTTP est fait pour recevoir des requêtes HTTP, donc il "parle" le protocole HTTP et adresse des repertoires et des fichiers.

    Je pense que dans ton cas, tu dois faire plutot une application ayant un port "d'écoute", qui pourra être interrogée à distance par une application cliente, et une fois la connection effectuée, un dialogue pourra s'instaurer.

    Es-tu donc sûr qu'il s'agit d'un serveur HTTP que tu dois developper ?
    K

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Nan nan, je parle bien d'un serveur HTTP.
    Vu que les gens qui vont faire des Query sur mon serveur ...

    je pense qu'il me faut donc un serveur HTTP

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    en faite ... je peux coller le bout de code qui va servir a ouvrir une connexion vers le serveur Http que je dois faire.

    c'est pas super clair ... mais c'est pas mon code
    il faut savoir que ca utilise des lib proprietaires ... donc c'est pas facile a compiler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    	char* theURL  = "http://intra.heidelberg.com";
     
    	std::cout << "Enter any string:";
     
    	char line[256];
    	gets(line);
    	// create a URL
     
    	JDF::URL u;
     
    	try
    	{
    		// create the URL for the server
    		u.create(theURL);
    		std::cout << "Connecting to:" <<theURL<< std::endl;
    		// open up the connection
    		JDF::HttpURLConnection* con = (JDF::HttpURLConnection*) u.openConnection();
    		if ( con == NULL)
    			std::cout << "test 1 equal null" << std::endl;
    		else
    			std::cout << "test 1 not equal null" << con << std::endl;
    		// we want to send something to the server
    		con->setRequestMethod("GET");
    		std::cout << "test 2" << std::endl;
    		// we will have to enable output explicitly
    		con->setDoOutput(true);
    		// now send the user string
    		std::cout << "test 3" << std::endl;
     
    		JDF::OutputStream& out = con->getOutputStream();
    		std::cout << "test 4" << std::endl;
    		std::string s("string=");
    		s.append(&line[0]);
    		std::cout << "test 5" << std::endl;
    		out.write((char*)s.data(),s.length());
    		std::cout << "test 6" << std::endl;
    		// read back the reply we get from the server
    		JDF::InputStream& in = con->getInputStream();
    		std::cout << "test 7" << std::endl;
    		JDF::ByteArrayOutputStream bout;
    		const int size = 1024*10;
    		char buf[size];
    		int nread;
    		while ((nread = in.read(buf,size)) != -1)
    		{
    			bout.write(buf,nread);
    		}
    		std::cout << "test 8" << std::endl;
    		// show the result
    		JDF::WString reserved =  bout.toString();
    		std::cout << "test 9" << std::endl;
    		//char* reservedBytes = reserved.getBytes();
    		//JDF::ArrayJanitor<char> reservedBytesJanitor(reservedBytes);
    		std::cout << reserved.getBytes() << std::endl;
    		std::cout << "test 10" << std::endl;
    		delete con;
    		std::cout << "test 11" << std::endl;
    	}
    	catch (JDF::Exception& e)
    	{
    		char* reason = e.toString().getBytes();
    		std::cout << "test 12" << std::endl;
    //		JDF::ArrayJanitor<char> reasonJanitor(reason);
    		std::cout << "ExceptionCaught " << reason << std::endl;
    	}
    	try
    	{
    		std::cout << "test 13" << std::endl;
    		JDF::PlatformUtils::Terminate();
    	} catch (const JDF::Exception&)
    	{
    		return 1;
    	}
     
        try
    	{
    	std::cout << "test 14" << std::endl;
            XMLPlatformUtils::Terminate();
        }
    	catch(const XMLException&)
    	{
            return 1;
        }

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour et dans ton cas ça compile pas ?
    K

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    ah ben le code du dessus compile ... c'est pas reellement le probleme, vu que c'est le code que vont utiliser les gens pour communiquer avec mon serveur HTTP.

    le probleme reste que je ne sais pas comment faire mon serveur HTTP

  7. #7
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Hmm lol

    Et en fait tu n'as aucune indication sur comment faire ton serveur HTTP ( ou tu as séché les cours ? )

    En résumé, voila le principe :

    Un serveur HTTP, comprend et interprète le protocole HTTP.
    Il ouvre un port ( 80 par défaut ) et écoute sur celui-ci toute requête HTTP. Quand il comprend la requête, il l'execute ( par exemple, un GET correspond à obtenir une page html statique correspondant à l'url demandée ).
    Donc un serveur HTTP possède également un mapping entre url et l'espace disque, il gère des "repertoires virtuels".
    Il faut donc que tu cherches le RFC HTTP ( pour connaitre les différentes commandes HTTP possibles ), que tu implémentes les fonctions dont tu as besoin ( je ne pense pas que tu aies besoin de toutes les fonctions, en fait il faut regarder dans l'exemple de client qu'on t'a donné, pour savoir quelles fonctions implémenter ou non ) et ensuite que tu crées le parseur de commande HTTP pour comprendre les requêtes et aiguiller ainsi vers les bonnes fonctions...

    Je dis tout ça d'une manière la plus basique, il faut que tu regardes ça sur des documentations plus précises sur le net, en cherchant HTTP Server, tu en trouveras.. Mais par curiosité, combien de temps vous ont-ils donné pour faire cela ? De quels documents disposes-tu ? Pensais-tu que tu trouverais ici du code tout fait ?

    A+ et Bon courage
    K

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    merci pour ta reponse

    je vais donner quelques indications ^^

    alors oui ... mes cours sur les serveurs HTTP .... euh j'en ai jamais eu et même mes cours c'est super loin ^^

    sinon pour le temps de realisation ... ben comment dire je dois faire mon serveur HTTP avant lundi matin, j'ai un colloc sur un nouveau language d'echange de données ... ou les données d'echange sous forme presque XML via le protocole http. Vu que c'est relativement nouveau ... ont doit etre 40 a travailler sur le concept en europe et aux US donc pour l'aide c'est pas trop trop facile ... leurs codes est proprietaire.

    ensuite mon je cherche juste un exemple basique pour creer un serveur HTTP ... apres je vais gerer mais je ne sais pas trop par ou commencer

    en tout cas merci pour ton aide

  9. #9
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Si je comprend bien c'est ton entreprise qui te demande de faire ça, pour lundi ?

    Pourquoi réécrire ce qui existe déjà ? il y a pleins de serveurs HTTP existants, mais bon, je ne comprend pas bien le but, ni la necessité de faire ça... Et ces données échangées sous forme "presque" XML, il s'agit de quoi ? lol En fait tu fais des programmes d'espionnages ou quoi ??

    En tout cas, à moins que tu sois un crack de la programmation, je vois mal comment en un week-end tu pourras coder un serveur HTTP même basique.. Si tu veux du code source, chez du coté de Xitami, ou de Apache... Mais ce sont des serveurs HTTP assez avancés, ayant une gestion de modules pour les langages d'applications, etc...

    Bon courage en tout cas !
    K

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    voir codeguru:
    http://www.codeguru.com/Cpp/I-N/internet/http/article.php/c3393/
    ou encore la section racine:
    http://www.codeguru.com/Cpp/I-N/internet/http/

  11. #11
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    oui oui c'est pour ma boite ...
    apres je dois integrer un serveur HTTP dans mon projet, avec un traitement particulier des infos ...

    ensuite, nan c'est pas un logiciel d'espionnage ... c'est de la surveillance

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    merci pour les sites, je vais regarder ca

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Tu peux également regarder ici qui présente en plusieurs types de langages.

    Cordialement,
    Bisounours.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    http://www.codeguru.com/Cpp/I-N/internet/http/article.php/c3383

    au final j'ai utiliser ce petit serveur HTTP, il est tres simple mais on peut reelement faire ce que l'on veut avec.

    Je conseil, c'est un bon truc pour demarrer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. serveur HTTP cerbuino net
    Par NarisEvil dans le forum Débuter
    Réponses: 0
    Dernier message: 24/03/2015, 12h01
  2. [WD17] Assemblage .NET serveur http
    Par mkweb dans le forum WinDev
    Réponses: 2
    Dernier message: 27/11/2012, 16h18
  3. [VB.NET] Creation d'un arbre
    Par Dnx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/03/2005, 17h27
  4. [VB.NET] Création d'un tableau en code behind
    Par netr dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/05/2004, 10h02
  5. [Réseau] Headers vers un serveur http
    Par gexti dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/05/2004, 14h58

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