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++/CLI Discussion :

communication C++ C# par socket


Sujet :

C++/CLI

  1. #1
    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 communication C++ C# par socket
    Bonjour à tous, chui un petit nouveau ici. Je ne sais pas si ma question est sur le bon forum.

    Je fais une communication par socket entre un serveur C++ et un client C#.
    Mon pb: l'échange des données

    Pour échanger les données entre les deux, j'utilise le NetworkStream.
    Pour envoyer un tableau de double au serveur, mon client passe par une transformation en tableau d'octets:
    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
    private void sendArrayBis()
    		{
    			//mon tableau de test à envoyer
    			double[] test=new double[]{1.22,22.3334};
     
    			//mon tableau d'octets à remplir
    			Byte[] data=new byte[8 * test.Length];
     
    			//transformer mon tabl. de double en tabl. d'octets
    			int idx=0;
    			for(int cpt=0;cpt<test.Length;cpt++){
    				System.BitConverter.GetBytes(test[cpt]).CopyTo(data,idx);
    				idx+=8;
    			}
     
    			//envoyer (_stream <NetworkStream>)
    			_stream.Write(data,0,data.Length);
    			_stream.Flush();
    		}
    Le serveur le recoit (, connait le nbr de double à recevoir) et le convertit en en double*

    1°) Est ce la bonne et meilleure méthode pour envoyer mes données par la socket ?

    2°) Quid d'un tableau n dimensions ? On parcourt le tableau et on met tous les double à la suite dans un tableau d'octets ?
    RQ : Mon serveur attend un double**

    Merci de votre aide...

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Ne pas oublier que l'envoi de données par socket est l'envoi d'octet.

    Il est à toi de t'amuser à spécifier la taille de ton tableau, le nombre de colonnes et de ligne. Ton tableau étant à deux dimensions, essaie de voir comment le représenter linérairement ( l'astuce c'est qu'un tableau multidimensionnel est linéraire).

    Si tu désires propager de l'objet à travers des sockets pourquoi n'emplois-tu pas du CORBA ou du SOAP ?
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  3. #3
    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
    * OK pour les octets, j en suis bien conscient.
    Je pense que pour la transfo en binaire, je vais utiliser le BinaryWriter.

    * Pour le tableau 2 dimensions, je vais faire ca:
    1°) envoi de la taille du tableau (2 int)
    2°) envoi de tous les objets du tableau à la suite

    * Pour Corba et SOAP, je n'ai pas le choix: c 'est une contrainte de passer par socket. En fait, moi je développe le client C# qui discutera avec le server C++, qui lui marche deja par socket. Donc je me suis fait pour mes tests, un serveur C++ ecoutant sur une socket.
    Voila.

    Au final, penses-tu que tout ca (transfo. binaire, protocole taille puis objets) est viable ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communication C/Java par socket
    Par midotek dans le forum Réseau
    Réponses: 3
    Dernier message: 05/12/2008, 20h06
  2. Communication par socket
    Par cybermarcel dans le forum Ruby
    Réponses: 5
    Dernier message: 14/01/2007, 23h08
  3. Problème de communication par socket
    Par odjosc dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 20/06/2006, 14h57
  4. [Omnis] Communication par Socket
    Par y0p dans le forum WinDev
    Réponses: 4
    Dernier message: 15/06/2006, 09h02
  5. Problème de communication par sockets
    Par Linio dans le forum Entrée/Sortie
    Réponses: 33
    Dernier message: 06/05/2006, 18h50

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