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 :

[Sockets][Send/Recv] échanges de trames entre serveur et client en mode connecté


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 93
    Points
    93
    Par défaut [Sockets][Send/Recv] échanges de trames entre serveur et client en mode connecté
    Bonjour,

    J'utilise les sockets, en mode connecté (TCP). J'ai un serveur et plusieurs logiciel clients.

    Je voudrait échanger les infos entre serveur et clients via des trames de type socket.

    Voici ma méthode d'envoi : (client)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    /********** ENVOI D'UN MESSAGE *******************************************************************/
     
            public void SendMessage(string prmMessage) {
                byte[] buffer;  //buffer pour envoi et reception de trame
                buffer = System.Text.Encoding.ASCII.GetBytes(prmMessage);
     
                mySocket.Send(buffer, 0, buffer.Length, SocketFlags.None);  //envoi de la trame
            }
    Voici ma méthode de reception : (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
     
    /********** RECEPT D'UN MESSAGE *******************************************************************/
            public void ReceiveMessage(string prmMessage) {
                byte[] buffer = new byte[1024];  //buffer pour envoir recept trame
                System.Text.StringBuilder test = new StringBuilder();
                string aaa = "aaa";
                int count;
                try {
                    count = serverSocket.Receive(buffer, 0, 1024, SocketFlags.None);  //reception de la trame
                    Console.WriteLine("count : " + count);
                    //aaa = test.Append(System.Text.Encoding.ASCII.GetString(buffer, 0, count)).ToString();  //transtypage en String
                    Console.WriteLine("\n\n\n\n\n\n Message :  " + aaa);
                } catch (SocketException e) {
                    Console.WriteLine("\n**********************ERROR**********************\n" + e.StackTrace + "\n\n" + e.Message);
                }
     
     
     
     
            }

    Lorsque j'execute mon server est client, j'ai une exception qui se génére comme quoi ma socket n'existe plus.


    Voici l'exception génrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    **********************ERROR**********************
       à System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size,
    SocketFlags socketFlags)
       à pjtDaddaServer.ClassServer.SendMessage(String prmMessage) dans C:\Users\gai
    lup\Documents\Visual Studio 2005\Projects\pjtDaddaServer\pjtDaddaServer\ClassSer
    ver.cs:ligne 85
     
    Une requête d'envoi ou de réception de données n'a pas été autorisée car le sock
    et n'est pas connecté et (lors de l'envoi sur un socket datagramme en utilisant
    un appel sendto) aucune adresse n'a été fournie

    Je ne vois pas trop d'où peux venir cette exception. Avez-vous des idées ?


    Cordialement,
    FONTAINE Guillaume.
    Gailup.

  2. #2
    Membre régulier Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Je te conseillerais de voir du coté des méthodes de récéption asnychrone
    XOR Onlava, Onlava

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Merci,


    J'ai trouver mon erreur, c'est tout simplement que je n'utiliser pas de socket client donc il ne toruver pas ce message.

    Quand j'accepte un client je stock sont type socket dans une ArrayList, j'utilise cell-ci pour récupérer ma trame
    Gailup.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur Electrique
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Electrique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut explication
    salut j'ai eu le meme probleme que vous mais je n'ai pas bien compris ce que vous avez fait si vous pouvez mieux m'expliquer

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

Discussions similaires

  1. échange message entre Serveur et client
    Par boukharyinfos dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 19/05/2009, 10h11
  2. Protocole - échange de données entre serveur et clients
    Par karistouf dans le forum Réseau
    Réponses: 8
    Dernier message: 14/09/2008, 19h13
  3. Réponses: 16
    Dernier message: 01/03/2007, 17h31
  4. [Système] Échange de données entre serveurs
    Par bpriscil dans le forum Langage
    Réponses: 7
    Dernier message: 19/05/2006, 09h51
  5. [Socket] Send/Recv type double sur architectures différentes
    Par nicolas.pied dans le forum Réseau
    Réponses: 4
    Dernier message: 31/03/2006, 20h33

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