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 :

Envoie d'un objet sérialisé via un TCPClient


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut Envoie d'un objet sérialisé via un TCPClient
    Bonjour, j'ai un problème lors de l'envoie d'un objet sérialisé à un serveur. J'ai essayé de chercher sur le net j'ai pas pu identifié la source de mon erreur. En fait, j'ai un objet "IdentificationClient" que je voudrais l'envoyer à un serveur.
    Voilà le code que j'ai fait pour la partie client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    fluxClient = client.GetStream();// client de type TCPClient
                if (fluxClient.CanWrite)
                {
                    MemoryStream ms = new MemoryStream();
                    IFormatter bf = new BinaryFormatter();
                    bf.Serialize(ms, IdentificationClient);//Objet à sérialiser
                    byte[] writerbuffer = ms.GetBuffer();
                    ms.Close();
                    fluxClient.Write(writerbuffer, 0, writerbuffer.Length);
                    fluxClient.Close();
                  }
    Dans la partie serveur je souhaite récupérer l'objet pour effectuer des traitements :

    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
     
    NetworkStream fluxClient = serviceClient.GetStream();
                if (fluxClient.CanRead)
                {
                    byte[] data = new byte[serviceClient.ReceiveBufferSize];
                    MemoryStream ms2 = new MemoryStream(data);
                    fluxClient.Read(data, 0, (int)serviceClient.ReceiveBufferSize);
                    IFormatter formatter = new BinaryFormatter();
                    IdentificationClient p = (IdentificationClient)formatter.Deserialize(ms2); // you have to cast the deserialized object
                    fluxClient.Close();
                    //client.Close();
                    //server.Stop(); 
                    String loginUser = p.LoginClient;//renvoie le login
                    MessageBox.Show(loginUser);
                }
    J'espère que vous pouvez m'aider.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Qu'est-ce qui ne marche pas? Y a-t-il un message d'erreur?
    Tu l'envois sur quel port?
    Peux-tu nous montrer coment tu instancies le client?

    Il y a un bon exemple ici: http://msdn.microsoft.com/en-us/libr...nt(VS.80).aspx

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    Bonjour,

    En fait, je voulais envoyer un objet et pas une chaine de caractère. J'ai vu sur internet qu'il faut passer par la sérialization binaire pour pouvoir envoyer plusieurs types via les sockets. Donc, mon problème c'est au niveau de l'envoie de l'objet sérializé.

    J'ai une autre question : est ce que je pourrai créer plusieurs objets de types NetworkStream ou bien le même objet sert à lire et à écrire ?

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Qu'est-ce qui ne marche pas? Y a-t-il un message d'erreur?
    Tu l'envois sur quel port?
    Peux-tu nous montrer coment tu instancies le client?
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    J'ai pas de messages d'erreur, mais je reçois rien voilà. La connexion entre le client serveur marche bien, j'ai déjà essayé d'envoyer des chaines de caractères.

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Quel port? Si c'etait sur un serveur web cela simplifierait les choses.

    Y'a quoi derrière qui écoute?

    Et ce tuto? http://defaut.developpez.com/tutorie...t/remoting/cs/
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    J'utilise le port 7000. C'est juste j'ai besoin de développer une application Client/Serveur

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Y'a quoi derrière qui écoute?
    Et le tuto?
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [AC-2003] Envoi de plusieurs objets via une seule macro
    Par Skoat dans le forum Access
    Réponses: 9
    Dernier message: 03/11/2009, 16h42
  2. Envoie d'objet complexe via HTTPService
    Par rades2006 dans le forum Flex
    Réponses: 9
    Dernier message: 07/10/2009, 13h48
  3. Ajouter objet dynamiquement via un bouton
    Par maxjaco dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 23/06/2006, 16h39
  4. [Sécurité] Problème de récupération d'objet sérialisé
    Par Mysticlolly dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2006, 14h16
  5. Script d'envoie d'un fichier excel via un formulaire
    Par Morphine.Nw dans le forum ASP
    Réponses: 4
    Dernier message: 26/01/2006, 13h08

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