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 :

socket client c# <-> socket serveur c++


Sujet :

C#

  1. #1
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut socket client c# <-> socket serveur c++
    Bonjour à tous, j'essaye de faire se connecter un client c# sur un serveur C++ à l'aide des sockets mais j'ai invariablement le même msg d'erreur :

    le serveur a expressément refusé la connexion

    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
     
    //code serveur
    ...
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port =  12345;
    serverAddr.sin_addr.s_addr = INADDR_ANY;
     
     
     
    if( ( listeningSocket = socket( AF_INET, SOCK_STREAM, 0 ) ) == INVALID_SOCKET ){
    		cerr << "ne peut créer la socket. Erreur n° " << WSAGetLastError()<< endl;
    		WSACleanup();
    		return 1;
    	}
    	BOOL opt=1;
    	 setsockopt ( listeningSocket,SOL_SOCKET,SO_REUSEADDR,(char*)&opt,sizeof(opt));
     
    	if( bind( listeningSocket, (SOCKADDR *)&serverAddr, sizeof( serverAddr ) ) == SOCKET_ERROR ){
    		cerr << "bind a échoué avec l'erreur " << WSAGetLastError() << endl;
    		cerr << "Le port est peut-être déjà utilisé par un autre processus " << endl;
    		closesocket( listeningSocket );
    		WSACleanup();
    		return 1;
    	}
     
    	if( listen( listeningSocket, 5 ) == SOCKET_ERROR ){
    		cerr << "listen a échoué avec l'erreur " << WSAGetLastError() << endl;
    		closesocket( listeningSocket );
    		WSACleanup();
    		return 1;
    	}
    et voici le code côté 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
     
     
    //côté client
     
    IPHostEntry hostEntry =  Dns.GetHostEntry("localhost");
     
     
    socket_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
     
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 12345);
     
     
    socket_client.Connect(endPoint);
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    il faudrait que tu regardes dans le LastError() quel est l'erreur exacte ? ou le
    code d'erreur retourné ?

    Sinon, à priori, on peut tout à fait faire communiquer une appli en C++ avec une appli C# via socket

    D'ailleurs, à titre informatif, On peut faire communiquer TOUT LE MONDE via les sockets... peut importer le langage ou le framework utilisé à la base.. C'est juste une question apres de format des trames pour que tout le monde se comprenne

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    je vais regarder le LastError()
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  4. #4
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    Et bien, l'erreur ramenée est "le poste a refusé la connexion".

    J'ai essayé l'inverse : une socket serveur en c# et un client C++. Même résultat, refus de connexion.

    En fait, tout se passe comme si j'avais même pas démarré de socket d'écoute.

    Par contre, client et serveur en C# marche très bien de même que client et serveur en C++.

    ???
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    mouais c'est bizarre

    Faudrait voir si il n'y a pas un soucis en faisant tourner client et serveur sur la meme machine

    Je regarderais peut-etre du coté du EndPoint qui peut poser soucis par exemple

    (Tu peux essayer de te connecter directement sur une adresse IP et un port - meme si je crois , de mémoire que les fonctions pour le faire son considérées obsolotètes, elles fonctionnent toujours

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    Je vois pas trop ce qui cloche, surtout que les connexions C++/C++ et C#/C# marchent d'après ce que tu dis.

    Pour moi aussi, je vois pas autre chose que le EndPoint. Vérifie que l'adresse IP récupérée dans "AdressList" est OK.

    Tu peux faire une tentative comme le dit theMonz31 en parsant directement l'adresse IP avec IPAddress.Parse(ipAdr).

  7. #7
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    ouais je vais essayer ça, merci
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    A essayer, si clients et serveurs sont sur le même PC : ne pas utiliser l'addresse IP du PC, mais 127.0.0.1.

    On a résolu ainsi des problèmes socket c# <--> socket delphi.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/03/2006, 16h18
  2. [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
  3. Réponses: 2
    Dernier message: 12/10/2004, 13h04
  4. [SOCKET] Client C connecté à un serveur Java
    Par missllyss dans le forum Développement
    Réponses: 2
    Dernier message: 07/06/2004, 13h14
  5. Socket:Envoyer du texte d'un serveur vers tout les clients
    Par cedm78 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 01/08/2002, 16h40

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