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 :

[Réseau] Winsock : Problème requête GET HTTP


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut [Réseau] Winsock : Problème requête GET HTTP
    Bonjour à tous, voici mon code c++ :
    Code C++ : 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
    #include <iostream>
    #include <winsock2.h>
     
    #pragma comment(lib, "ws2_32.lib")
     
    using namespace std;
     
    char* req = "GET /index.php HTTP/1.1\r\nHost: www.******.com\r\nUser-Agent: Mozilla\r\n";
     
    int main() {
    	WSADATA WSAData;
    	WSAStartup(MAKEWORD(2,0), &WSAData);
    	SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
    	SOCKADDR_IN sin;
     
    	if(sock == INVALID_SOCKET)
    		cout << "Unhealthy socket configuration." << endl;
    	else {
    		sin.sin_addr.s_addr = inet_addr("**.***.***.**");
    		sin.sin_family = AF_INET;
    		sin.sin_port = htons(80);
    		connect(sock, (SOCKADDR *)&sin, sizeof(sin));
    		while (1)
    			send(sock, req, sizeof(req), 0);
    	}
    	system("PAUSE");
    	return 0;
    }

    Jusque là tout va bien hein ?
    ET bien lorsque j'ouvre wireshark pour regarder si on me retourne bien un 200 OK, je vois :
    Code WireShark : Sélectionner tout - Visualiser dans une fenêtre à part
    87567	514.811196	192.168.0.11	**.***.***.**	HTTP	GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET GET

    Et tout ça sur une même ligne... Avez vous une idée de ce phénomène ?

    Merci beaucoup d'avance,

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Dans ton send(), tu envoies 4 octets (la taille du pointeur), il faut envoyer la longueur de la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    send(sock, req, strlen(req), 0);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut
    Ah oui merci bien, ça marche beaucoup mieux maintenant !
    Néanmoins il sunsiste toujours un problème du même contexte, lorsque je regarde sur wireshark je vois la ligne :
    - Transmission Control Protocol en rouge avec écrit :
    Checksum: 0x6096 [incorrect, should be 0xd9fa (maybe caused by "TCP checksum offload"?)]
    Comment le corriger s'il vous plait ?
    J'ai fais une petite recherche sur google évidemment mais rien ne me dit comment le corriger dans le programme c++.

    Merci encore,

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Moi aussi, j'ai les mêmes erreurs de checksum avec Wireshark avec des protocoles qui fonctionnent bien (FTP ou netbios par exemple) que je ne comprend pas non plus.

    J'en ai donc déduit (à tord peut être) qu'il y avait un bug dans la gestion des checksum de wireshark.

    Fais comme moi, oublie donc ces erreur
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. Requête GET HTTP Android vers un serveur WEB
    Par sk310000 dans le forum Programmation système
    Réponses: 0
    Dernier message: 30/01/2015, 18h01
  2. [PHP 5.3] modifier Range dans une requête GET HTTP
    Par moukit233 dans le forum Langage
    Réponses: 2
    Dernier message: 18/10/2012, 17h41
  3. Problème requête HTTP
    Par Risike dans le forum Développement
    Réponses: 3
    Dernier message: 29/06/2007, 02h40
  4. Problème requête HTTP
    Par Risike dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2007, 11h35
  5. [HTTP] Requête Get et récupération de la réponse
    Par tck-lt dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 07/06/2005, 14h55

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