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 :

Probleme C++ et sockets


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    28
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 28
    Par d�faut Probleme C++ et sockets
    bonjour,

    J'ai un petit probleme avec les sockets svp.

    Sur le serveur et le client j'initialise bien les socket et je les connects correctement....

    jusque l� , pas de probleme....

    Des que le serveur � accept� la connexion, il entre dans une boucle dans laqueele il attent une reception:

    recv(mon_socket, buff, sizeof(buff), 0);

    du c�t� client des la connexion r�alis�, envoie d'un message:

    send(mon_socket, buff, sizeof(buff)+1, 0);


    MAIS je ne re�oie jamais rien sur le serveur , mon buffer est tjrs vide....


    J'ai besoin d'aide sur ce probleme svp ... qu''en pensez vous?

  2. #2
    Membre chevronn� Avatar de Mayti4
    Inscrit en
    F�vrier 2004
    Messages
    442
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 442
    Par d�faut
    send(mon_socket, buff, sizeof(buff)+1, 0);
    C'est strlen(buff) et non sizeof(buff), si ce n'est pas le probl�me poste ton code.

  3. #3
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    28
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 28
    Par d�faut
    Merci beaucoup pour la correction, mais ca ne fonctionne tjrs pas.......

    normalement, quand j'e peux des que je me connect avec le client envoyer tout de suite un message (send) ?? il ne faudrait pas attendre un tout petit peux que la connexion soit accept� par le serveur ??

    Je ne vois pas comment debugger ca ??

    merci.

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    buff est un tableau ou un pointeur ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Inscrit en
    F�vrier 2006
    Messages
    28
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2006
    Messages : 28
    Par d�faut
    Sur le serveur :

    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
            int val = 0;
    	SOCKADDR_IN csin;
    	int tmp;
    	char buff[50]={};
     
    	struct arguments *arg=(struct arguments*)lpdwParam;
    	tmp=sizeof(csin);
    	// on écoute le port sur le socket
    	listen(arg->dlg->sock[arg->x], 1);
     
    	while(1)
    	{
    	// on attend que le pc client se connect //
    	val = accept(arg->dlg->sock[arg->x], (SOCKADDR *)&csin,&tmp );
     
            if(val != INVALID_SOCKET)
    	{
    		// le pc echo est connecté	
    		// on attend de recevoir 
    		while(strlen(buff)==0)
    		{
    		recv(arg->dlg->sock[arg->x], buff, strlen(buff), 0);
    		arg->dlg->caract_valideur[arg->x].num_de_serie= atoi(buff);
    		}		
    	}
    sur le client:

    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
    SOCKADDR_IN sin;
     
    	WSADATA WSAData;
    	char buffer[128]="";
    	char ip[50];
    	char tmp[56];
    	int port;
     
     
     
    	CEdit*p_port = (CEdit*)GetDlgItem(IDC_EDIT2);
    	p_port->GetWindowText(ip,50);
    	p_port = (CEdit*)GetDlgItem(IDC_EDIT3);
    	p_port->GetWindowText(tmp,50);
    	port=(unsigned int)atoi(tmp);
     
    	sin.sin_addr.s_addr	= inet_addr(ip);
    	sin.sin_family		= AF_INET;
    	sin.sin_port		= htons(port);
    	sock = socket(AF_INET,SOCK_STREAM,0);
    	bind(sock,(SOCKADDR *)&sin, sizeof(sin));
     
    	connect(sock, (SOCKADDR *)&sin, sizeof(sin));
     
            CEdit*p_port = (CEdit*)GetDlgItem(IDC_EDIT1);
    	p_port->GetWindowText(buffer,50);
     
    	recv(sock, buffer, sizeof(buffer),0);

    voyez vous un probleme quelquonque ????? Merci.

  6. #6
    Membre chevronn� Avatar de Mayti4
    Inscrit en
    F�vrier 2004
    Messages
    442
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 442
    Par d�faut
    Tu es s�r que le client est connect� ?

    Il manque: - un appel � WSAStartup.
    - un appel � bind niveau serveur (sert � rien pour le client).
    - le send niveau client.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    recv(arg->dlg->sock[arg->x], buff, strlen(buff), 0);
    sizeof..

    Utilise la valeur de retour de recv.

Discussions similaires

  1. probleme avec les sockets
    Par iznogoud36 dans le forum Linux
    R�ponses: 4
    Dernier message: 20/12/2006, 10h33
  2. Probleme minime de socket
    Par Pragmateek dans le forum C++
    R�ponses: 4
    Dernier message: 12/03/2006, 19h15
  3. [C++] Probleme de connexion socket client � mon serveur smtp
    Par matthieu5978 dans le forum D�veloppement
    R�ponses: 2
    Dernier message: 04/12/2005, 08h19
  4. Probleme avec des socket !
    Par Ptimath44 dans le forum R�seau
    R�ponses: 11
    Dernier message: 31/10/2005, 18h11
  5. R�ponses: 2
    Dernier message: 31/05/2005, 09h50

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