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

Silverlight Discussion :

comment passer un paramètre a un serveur de socket


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut comment passer un paramètre a un serveur de socket
    bonjour,

    j'ai un site web, qui exécute un composant silverlight 2 beta2, dans un browser.
    ce composant silverlight communique avec le serveur web, par socket.

    pour initialiser ma demande depuis le client, j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DnsEndPoint endPoint = new DnsEndPoint(Application.Current.Host.Source.DnsSafeHost, 4530);
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
    SocketAsyncEventArgs args = new SocketAsyncEventArgs();
    args.UserToken = socket;
    args.RemoteEndPoint = endPoint;
    args.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted);
    socket.ConnectAsync(args);
    une fois mon client sous silverlight connecté au serveur de socket, un délégué est appelé dans silverlight.
    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
     
    private void OnSocketConnectCompleted(object sender, SocketAsyncEventArgs e)
    {
       byte[] response = new byte[1024];
       response[0] = 255;
       response[1] = 254;
     
      e.SetBuffer(response, 0, response.Length);
      e.Completed -= new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted);
      e.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketReceive);
      Socket socket = (Socket)e.UserToken;
      socket.ReceiveAsync(e);
    }
    dès que le serveur reçois cette demande, un délégué est appelé, toujours dans silverlight, et je suis censé recevoir les datas depuis mon serveur de soquet.

    tout marche parfaitement jusqu'ici.

    mais je ne sais pas comment passer un paramètre au serveur de soquet, pour lui donner des infos sur les données que je souhaite recevoir dans silverlight.

    par exemple, un nom, un numero, un objet.



    quelqu'un aurait une idée ?

    merci
    Olivier

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Bah avant ton Receive tu fais un Send.

    Côté serveur il attend quelque chose avant de renvoyer le résultat.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    bonsoir,

    oui, j'imagine bien, mais il semble que ce code :
    byte[] response = new byte[1024];
    response[0] = 255;
    response[1] = 254;

    e.SetBuffer(response, 0, response.Length);
    e.Completed -= new EventHandler<SocketAsyncEventArgs>(OnSocketConnectCompleted);
    e.Completed += new EventHandler<SocketAsyncEventArgs>(OnSocketReceive);
    Socket socket = (Socket)e.UserToken;
    socket.ReceiveAsync(e);

    déclenche la réception de mon objet.

    or il n'y a pas de send ici.

    notez que ce code est repris d'un tutorial, c'est pour cette raison que je ne maîtrise pas tout le code.

    la commande send se fait à partir de quel objet ?
    avec l'objet que j'ai nommé socket ?
    (bon demain je cherche dans cette voie, au boulot)

    merci pour toute réponse
    cordialement,
    Olivier

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par orobin Voir le message
    déclenche la réception de mon objet.

    or il n'y a pas de send ici.
    Bah c'est à toi de le faire le Send.

    Au lieu de faire un Receive tu fais un Send et dans le délégué que tu vas appeler tu feras un Receive.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    bonsoir,

    merci pour l'info.
    j'ai regardé vite fait ce matin, mais n'ai pas eu le temps de tester.

    dès que j'ai testé, je placerai mon code ici, pour info, et fermerai le status de ce post.

    merci pour l'aide
    Olivier

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/03/2006, 08h06
  2. Comment passer des paramètre a OpenRecordset
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2006, 17h14
  3. Réponses: 3
    Dernier message: 28/02/2006, 08h43
  4. [VB6] Comment passer un paramètre à un vbs depuis du vb6
    Par durnambule dans le forum VBScript
    Réponses: 2
    Dernier message: 27/09/2005, 10h46
  5. Réponses: 7
    Dernier message: 30/12/2004, 12h01

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