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

Windows Discussion :

Certains paquets ne sont pas envoyés avec WS2


Sujet :

Windows

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut Certains paquets ne sont pas envoyés avec WS2
    Bon voici le problème :

    J'essaye d'envoyer des paquets http avec winsock2 et, certains paquets sont envoyés, d'autres pas ... Je comprends pas pourquoi.

    Voici le code :
    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
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    char buffer[128];
    char *payload = "POST /";
    
    int main()
    {
    	WSADATA wsaData;
    	WORD version;
    	int error;
    
    	version = MAKEWORD( 2, 0 );
    	error = WSAStartup( version, &wsaData );
    	
    	if ( error != 0 )
    	{
    		printf("Initialization failure : %d\n", error);
    	    return 1;
    	}
    
    	SOCKET client;
    	client = socket( AF_INET, SOCK_STREAM, 0 );
    	hostent *host;
    	host = gethostbyname( "google.com" );
    
    	struct sockaddr_in sin;
    
    	memset( &sin, 0, sizeof sin );
    
    	sin.sin_family = AF_INET;
    	sin.sin_addr.s_addr = ((struct in_addr *)(host->h_addr))->s_addr;
    	sin.sin_port = htons(80);
    	
    	if ( connect( client, (sockaddr*)&sin, sizeof sin ) == SOCKET_ERROR )
    	{
    		printf("Connection failed\n");
    	    return 2;
    	}
    
    	printf("sending : %s\n", payload);
    
    	if(send(client, payload, strlen(payload), 0) == SOCKET_ERROR)
    	{
    		printf("Error : %d", WSAGetLastError());
    		return 3;
    	}
    	recv(client, buffer, 4096, 0);
    	printf(buffer);
    	closesocket(client);
    	WSACleanup();
    
    	return 0;
    }
    Le paquets envoyé dépend donc de la chaine payload. Pour vérifier ce qui se passe, j'écoute le traffic avec wireshark.

    Si payload = "GET /", tout est normale : le paquet est envoyé et le serveur me répond. (voir fichier correct.pcap).
    Si payload = "GET / HTTP/1.1" ou "POST /" (j'ai juste essayé avec ceux là) : il y a une connection qui se crée mais aucun paquets n'est envoyé, puis l'application attends une réponse avec recv() (vérifié avec le déboggueur) mais qui évidemment ne vient jamais (voir incorrect.pcap).

    Et c'est ça que je comprends pas : pourquoi est-ce que selon les données envoyée le paquets est envoyé ou pas ? Je tourne sous windows 7 64 bit

    EDIT :
    J'ai modifié une partie du code comme suis pour afficher le nombre d'octets envoyés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    error = send(client, payload, strlen(payload), 0);
    	if(error == SOCKET_ERROR)
    	{
    		printf("Error : %d", WSAGetLastError());
    		return 3;
    	}
    	printf("Bytes sent : %d\n", error);
    Et ça m'affiche bien le nombre d'octet qui aurait dû être envoyé (14 et 6) mais pour wireshark il y a toujours rien d'envoyé et le serveur me répond pas ...
    note : j'ai aussi essayé en désactivant le pare-feu windows
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. certains emails ne sont pas achemines (OVH)
    Par redah75 dans le forum Réseau
    Réponses: 2
    Dernier message: 17/10/2008, 18h33
  2. Mes parametres POST ne sont pas envoyés..
    Par Golgotha dans le forum Débuter
    Réponses: 13
    Dernier message: 11/06/2008, 12h27
  3. Réponses: 10
    Dernier message: 17/10/2007, 10h16
  4. [Mail] Les e-mails dans Bcc ne sont pas envoyés
    Par Klimium dans le forum Langage
    Réponses: 4
    Dernier message: 23/08/2007, 12h29
  5. Certaines FAQ ne sont pas téléchargeables
    Par Sytchev3 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 29/05/2006, 21h20

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