begin process at 2012 05 27 14:27:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CLASSE CLIENT HTTP MULTITACHE (MAJ 6)

CLASSE CLIENT HTTP MULTITACHE (MAJ 6)


 Information sur la source

Note :
Aucune note
Catégorie :Réseaux & Internet Classé sous :socket, string, class, multitache, http Niveau :Initié Date de création :29/12/2006 Date de mise à jour :11/01/2007 05:22:11 Vu / téléchargé :5 098 / 1 217

Auteur : NoRabbit

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


 Description

cette source contient 3 classes:

les classes sClient et sClientHTTP:
- sClient.h: classe de base, gere les sockets winsock, fonction de reception de donnees en multitache.
- sClientHTTP.h: herite des membres de sClient.h, fonction multitache surchargee: gere l entete HTTP et les donnees recues, gestion des codes HTTP de retour, gestion reception de fichiers, gestion des chunks (transfer-encoding: chunked)
Il est desormais necessaire d heriter cette classe afin de pouvoir l utiliser (ou de la changer afin de tout gerer a l interieur de celle-ci).

la classe sString.h:
classe gerant les chaines de caracteres (codee pour les besoins de sClientHTTP et pour ma propre comprehension, certaines choses manquent encore meme si elle commence a se completer de + en +, je la code au fur et a mesure de mes besoins pour la classe sClientHTTP, parfaitement fonctionnelle)
qques fonctions:
- mid(depart, longueur): permet de recupere une chaine commencant au caractere "depart" et de longueur "longueur"
- compare(chaine_a_comparer): permet de comparer deux chaines
- split(chaine, nbr, taille): separe une chaine autant de fois qu il est specifie par "nbr". Retourne un tableau des elements separes
- toInt(chaine): converti la chaine "chaine" en un entier.
Les operateurs suivants sont presents: +, +=, ==, !=, [], *, =
- hex2dec(chaine): converti une chaine hexadecimale en un entier (int)
- lTrim(chaine), rTrim(chaine) et trim(chaine): permettent d enlever les caracteres specifies dans "chaine" au debut et/ou a la fin de la chaine. Ex: a.lTrim(" \r\nd") enleve tous les caracteres specifies (" ", "\r", "\n" et "d") du debut de la chaine a (l ordre n a pas d importance, les caracteres sont pris un a un)

Source

  • // exemple fournit dans le zip.
  • // projet devcpp
  • // exemple de telechargement de fichier et gestion des chunks (transfer-encoding: chunked)
// exemple fournit dans le zip.
// projet devcpp

// exemple de telechargement de fichier et gestion des chunks (transfer-encoding: chunked)

 Conclusion

Une autre modification majeure concernant la classe sClientHTTP: gestion des chunks (transfer-encoding: chunked)
La classe sString s enrichit de qques fonctions interessantes: hex2dec, rTrim, lTrim et trim.

Le projet s ouvre avec DevCPP (4.9.9.2 je pense... la derniere version dispo pour le moment)

une adresse utile contenant qques classes (strings, sockets, threads, gestion sll, ...):
http://www.bti.net/core_lib.php

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   sClientHTTP
    • classe_test.cpp

Télécharger le zip


 Historique

29 décembre 2006 17:38:29 :
upload du zip
31 décembre 2006 14:13:47 :
classe sString modifiee (exempte de bug connu) classe sClientHTTP separee en 2 classes: sClient et sClientHTTP upload du nouveau zip.
31 décembre 2006 14:16:57 :
correction de bugs et restructuration de la classe sString. classe sClientHTTP separee en deux: sClient et sClientHTTP
31 décembre 2006 14:18:25 :
correction de bugs et restructuration de la classe sString. classe sClientHTTP separee en deux: sClient et sClientHTTP
31 décembre 2006 14:37:12 :
correction de bugs et restructuration de la classe sString classe sClientHTTP separee en deux: sClient et sClientHTTP
31 décembre 2006 14:39:44 :
upload du zip... pas au point le systeme de mise a jour de cppfrance...
04 janvier 2007 17:28:20 :
sClientHTTP: reception de fichier et gestion des infos contenues dans l entete HTTP - sString: ajout de nouveaux operateurs (== et !=) et d une nouvelle fonction (toInt)
04 janvier 2007 17:29:50 :
upload du zip
05 janvier 2007 18:08:57 :
sClientHTTP: plus de pointeurs sur fonctions, il est necessaire de l heriter pour pouvoir gerer les fonctions de reception de donnees et d evenements.
05 janvier 2007 18:10:11 :
upload du zip
10 janvier 2007 05:29:38 :
sClientHTTP: gestion des chunks HTTP (transfer-encoding: chunked); sString: ajout des fonctions hex2dec, lTrim, rTrim et trim.
10 janvier 2007 05:32:26 :
upload du zip
11 janvier 2007 05:20:02 :
correction d un bug lors de la gestion des chunks
11 janvier 2007 05:22:11 :
upload du zip

 Sources du même auteur

Source avec Zip Source avec une capture MATRIX FALL X 3D (EFFET MATRIX EN 3D)
Source avec Zip CLASSE SSTRING OU LA MANIPULATION DES "STRING" PLUS INTUITIV...
Source avec Zip Source avec une capture OPENGL - EFFET D'EFFRITEMENT 3D

 Sources de la même categorie

Source avec Zip Source avec une capture MINI SERVEUR HTTP [WINDOWS] par ganjarasta
Source avec Zip Source avec une capture CLIENT DE TEST MODBUS TCP par brunovan
Source avec Zip Source avec une capture SCANIP [ARP / ICMP] par ganjarasta
Source avec Zip Source avec une capture TRACEROUTE [WINPCAP] par ganjarasta
Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MINI SERVEUR HTTP [WINDOWS] par ganjarasta
Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas
Source avec Zip GSTRING - GESTION DES CHAINES DE CARACTÈRES par Neokript
Source avec Zip CLASS STRING par T_Mehdi
Source avec Zip SERVEUR HTTP par Bel0

Commentaires et avis

Commentaire de yann_lo_san le 29/12/2006 19:09:51

Je n'ai pas regardé le code mais c'est pas bon ça.
Tu ne détruis pas les copies !!!!

As tu implémenté l'operator = et le constructeur par recopie ?

Et SURTOUT l'operator cast ?
sString::operator char*() const
{
  return buffer;
}

pour la concaténation, y'a + simple :

sString operator +(const sString &a , const sString &b)
{
  sString s(a.len + b.len);
  strcpy(s.buffer, a.buffer);
  strcat(s.buffer, b.buffer);
  return s;
}

Il n'y a aucune raison d'emplecher le destructeur de travailler !!!

Commentaire de yann_lo_san le 29/12/2006 19:15:13

Pour faire bien il te faut 2 operator = :
const Chaine& operator = (const char*);
const Chaine& operator = (const Chaine&);

Et 4 operator + : (ton friend n'est pas bon)

// Le tiens ici (pas friend)
virtual Chaine operator + (const Chaine&) const;
// Les autres ici
virtual Chaine operator + (const char*) const;
virtual Chaine operator + (char) const;
friend Chaine operator + (const char*, const Chaine&);

Tchao.

Commentaire de Kirua le 30/12/2006 11:24:54

Ça ne répond à aucune de tes questions, mais préfère tout de même, dans la pratique, utiliser l'en-tête C++ standard <string> (à ne pas confondre avec <string.h> ou plus proprement <cstring>). Tu trouveras plein de documentation en cherchant les mots "std string C++" sur ton moteur favori.

Du reste, je comprends bien que c'est dans le but de te former que tu as écrit cette classe. J'ai pas le temps de la lire pour te donner mon avis par contre, mais fais vraiment gaffe à bien avoir une désallocation pour chaque allocation: c'est extrêmement important!

Commentaire de NoRabbit le 30/12/2006 11:36:56

je sais, ca doit pomper une autre classe de string mais grace a ton aide j ai pu trouver des classes contenant ces bouts de code que je n avais jamais vu auparavant (comme ces operateurs = qui retournent une "Chaine&",... on en apprend tous les jours)

tkx.

une fois ces strings reglees, je me reconcentre sur la classe HTTP (gestion simple du protocole et reception de fichier)

Commentaire de NoRabbit le 30/12/2006 11:48:09

yep kirua,
ca fait plaisir de se sentir compris... ;)

pour ceux a la recherche de classes bien ecrites (string et autres...), voici une adresse qui m a l air pas mal:
http://www.bti.net/core_lib.php

ou faites une recherche avec "virtual operator + (const char*)const", google va vous trouver plein de choses.

Commentaire de yann_lo_san le 30/12/2006 18:05:41

Je veux bien te "comprendre", mais tu poses des questions ciblées, j'essaye de te répondre ciblé et pas de t'enfumer avec de bons sentiments.
Je me suis permis de poster parceque justement travailler sur une classe "string" en c++ est un très bon moyen de bien comprendre les concepts d'operateurs surchargés.
Quant tu fais :

sString resultat = buffer_sz;
UN OBJET sString = un pointeur sur char;

Il faut savoir les mécanismes de copie et d'affectation que tu déclanches, surtout si tu ne les a pas défini dans ta classe, le résultat ne peut être qu'un bug.
Donc, bonne continuation...  

Commentaire de NoRabbit le 31/12/2006 14:48:37

pas de soucis. Je t ai bien compris et ton message m a quand meme aide ;).

Bon, les choses serieuses maintenant:
apres qques tentatives de mise a jour de ce code, he ben j ai remis a jour le code.

J ai verifie, le zip est ok.

Commentaire de NoRabbit le 04/01/2007 17:31:59

nouvelle version dispo:
sClientHTTP: reception de fichiers et gestion de l entete HTTP
sString: plus d operateurs et fonction de conversion en un entier (nombre)

aucun bug connu.

Commentaire de NoRabbit le 10/01/2007 05:35:41

nouvelle version:
- sClientHTTP: gere les chunks (transfer-encoding: chunked), meilleure gestion des evenements (reponses HTTP, fin reception donnees, erreurs...)
- sString: ajout de qques fonctions: hex2dec, rTrim, lTrim et trim.

Commentaire de Rollinbe le 24/05/2007 17:31:40

Impossible d'ouvrir le fichier pourtant j'ai la la derniere version de winrar voir message ci-dessous

!   C:\Documents and Settings\Benjamin\Bureau\cppfrance_CLASSE-CLIENT-HTTP-MULTITACHE-MAJ_40904.zip: Méthode inconnue dans sClientHTTP\main.h
!   C:\Documents and Settings\Benjamin\Bureau\cppfrance_CLASSE-CLIENT-HTTP-MULTITACHE-MAJ_40904.zip: Pas de fichier à extraire

Commentaire de ppatrice82 le 25/05/2007 17:46:25

Même problème que Rollinbe, je n'arrive pas à ouvrir le ZIP...

Commentaire de NoRabbit le 29/05/2007 11:59:36

effectivement, je re-upload des que je peux.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

utlisation de la classe string [ par borgeomi ] borgeomibonjouuuuuuur !!!!!nouveau programmeur en C ++ ( mais vieux en cobol )sous visual C++création d'une fonction qui enlève les espaces de début e utilisation de socket [ par Sade ] lors de la création du projet, je n'ai pas coché la case "Windows Sockets", car mon projet ne nécéssité pas l'utilisation des sockets, mais voici que pb avec string-VC++ [ par didrocks ] Tout content d'essayer la class string, j'ai fait cela:#include &lt;string&gt;string Chaine = "test";et là, le compilateur me donne ce message:C:\ff7t socket >> [ par Avalon10101 ] Salut !je chercher des fonctions pour avoir des infos sur le PC sur lequel mon serveur est placé genre : nom du PC ...etccje sais qu'il en existé mais Problème avec les std::string [VC++6.0] [ par D1m3x ] Je suis en train de programmer un petit programme où j'utilise les templates, c'est la première fois que j'en utilise, alors je ne connais pas encore Client html [ par elinep ] Voila le code d'un petit client html que j'ai trouve sur cppfrance:#include &lt;stdio.h&gt;#include &lt;winsock2.h&gt;#include &lt;windows.h&gt;#pragm Pb connexion HTTP avec socket. [ par LuckyNut ] Bonjour,J'ai fait un prog permettant de lire des pages html à partir des sockets. Tout marche chez moi mais le programme ne marche pas chez un pote qu Liste d'éléments (comme des String) en VC++.Net (2003) [ par doudounico ] Bonjour, Je souhaiterais créer une liste de String (tableau de taille variable). Je pourrais utiliser une ArrayList mais j'obtiens un problème de cas string [ par blueburry ] bonjour,je suis en train de programmer sur visual c++.g un probleme avec les&nbsp; string, je fais:char nom[26];char sport[26];&nbsp;string nom = &amp string et + [ par blueburry ] bonjour,je suis en train de programmer sur visual c++.g un probleme avec les&nbsp; string, je fais:char nom[26];char sport[26];&nbsp;string nom = &amp


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales