probleme de recv qui bloque mon programme
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

probleme de recv qui bloque mon programme



  1. #1
    inviteb4cf150e

    probleme de recv qui bloque mon programme


    ------

    salut,
    mon probleme est le suivant :
    je veut faire un tunnel vpn entre deux pc (client et serveur) en programmation en language c sous windows;
    je dispose au depart de deux cartes reseaux virtuels une est installé coté client et l'autre coté serveur
    les deux sont nommées "TAP01" les instructions à réaliser est les suivantes:
    1- ouvrir une socket de connexion entre le client et le serveur en mode connecté
    2-coté client:
    2.1-lire les données du TAP01 (ReadFile)
    2.2-envoyer ces données via la socket vers le serveur (send)
    2.3-recevoir les données venant du serveur via sa socket (recv)
    2.4-ecrire les données reçus sur le TAP01 (WriteFile)
    tous ces instructions sont dans un boucle while

    Code:
    while (1) {
    
     //*************************lecture*************************
        if(ReadFile(hTap, Buf, sizeof(Buf), &dwLen, &ovl))
    		 {	
    	//**************** send ***************************
    		 nombre_de_caractere=send(id_de_la_socket,Buf,dwLen,0);
    		 }
       
    // Reception des données
          // ********************************************************
         nombre_de_caractere=recv(id_de_la_socket,Buf,sizeof(Buf),0);
    			
    		if (nombre_de_caractere==SOCKET_ERROR)
                printf("\nDesole, je n'ai pas recu de donnee");
            else			
    				{	 
    		//*****************************ecriture*************************************
    				WriteFile(hTap, Buf,nombre_de_caractere, &dwLen, &ovl) 
    				}
    
    }//fin while
    
    3-coté serveur:
    	3.1-recevoir les données venant du client via sa socket (recv)
    	3.2-ecrire les données reçus sur son TAP01 (WriteFile)
    	3.3lire les données du son TAP01 (ReadFile)
    	3.4-envoyer les données lus via sa socket vers le client (send)
    de meme ces instructions sont dans un boucle while
    
    while (1) {
    
    // Reception des données
          // ********************************************************
         nombre_de_caractere=recv(id_de_la_socket,Buf,sizeof(Buf),0);
    			
    		if (nombre_de_caractere==SOCKET_ERROR)
                printf("\nDesole, je n'ai pas recu de donnee");
            else			
    				{	 
    		//*****************************ecriture*************************************
    				WriteFile(hTap, Buf,nombre_de_caractere, &dwLen, &ovl) 
    				}
     //*************************lecture*************************
        if(ReadFile(hTap, Buf, sizeof(Buf), &dwLen, &ovl))
    		 {	
    	//**************** send ***************************
    		 nombre_de_caractere=send(id_de_la_socket,Buf,dwLen,0);
    		 }
       
    
    }//fin while
    tous marche bien sans erreur lors du test le ping du client vers le serveur marche bien
    mais dans l'autre sens (serveur vers client)ne marche pas sauf lorsque je ping coté client et simultanement coté serveur.
    j'arrive à constater que le probleme est que le recv du serveur est bloqué.
    j'ai essayé avec les socket non bloquante mais cela ne resoud pas le problème (problème de synchronization)
    je n'arrive pas à résoudre ce problème qui m'ennuie
    je serais heureuse si quelqu'un peut m'aider

    -----
    Dernière modification par yoda1234 ; 06/05/2009 à 19h32.

Discussions similaires

  1. pare-feu bitdefender qui bloque mon réseau
    Par Jack dans le forum Internet - Réseau - Sécurité générale
    Réponses: 8
    Dernier message: 09/01/2010, 18h12
  2. Un virus qui bloque mon ordi
    Par invite2e893fa3 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 5
    Dernier message: 12/09/2008, 20h26
  3. [Blanc] mon lave vaisselle vedette reste bloqué en programme lavage
    Par invite02723c4b dans le forum Dépannage
    Réponses: 3
    Dernier message: 16/10/2007, 13h40
  4. Petit problème qui me bloque...!
    Par hugox dans le forum Mathématiques du supérieur
    Réponses: 15
    Dernier message: 22/09/2004, 07h33
  5. probleme qd j'execute mon programme en C
    Par invite537de305 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 25/11/2003, 15h55
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...