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 :

question utilisation socket


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Par défaut question utilisation socket
    Bonjour,

    Je débute avec le C# et je développe actuellement une application qui consiste à récupérer les données d'un capteur qui sont transmises via une liaison Ethernet (protocole tcp/ip utilisé). Afin de les récupérer j'ai pensé utiliser un socket. Mon premier problème est de savoir si je dois travailler avec le socket en temps que serveur ou client.

    Pour l'instant j'ai codé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Socket serveursockets = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
            IPEndPoint pointdeter = new IPEndPoint(IPAddress.Parse("192.168.4.5"), 8000);
    Je pensais ensuite utiliser la méthode bind et listen afin de déclencher l'écoute.

    Pouvez-vous m'éclairer sur la façon dont je dois utiliser les sockets afin de récupérer les données?

    Merci d'avance pour vos réponses et au temps que vous m'aurez consacré

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si ton capteur initie une connexion, tu devras effectivement créer une socket de type serveur (bind + listen).
    Tu pourrais peut-être te tourner vers WCF qui permet de faire pas mal de choses de manière simple, une fois la documentation assimilée

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Par défaut
    Merci de ta réponse. En fait mon capteur est géré par un microcontroleur qui lui même gère un module Ethernet qui se charge d'envoyer les données vers le pc. J'ai déjà su faire passer des page html via ce même module donc je suppose qu'une connexion est initiée. Je vais continuer à creuser du coté des sockets

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il faudrait voir la doc que ton capteur, mais en général un capteur est le serveur, et il te faudrait donc un client

    la classe socket est la classe de base, il y a la classe TcpClient qui est légèrement plus simple à utiliser, mais qui peut rester complexe quand même ^^
    client.connect
    client.read
    (client.write pour envoyer)
    client.close
    (et client.dispose peut etre)
    le tout dans un thread, ou alors comprendre les fonctions asynchrones
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Par défaut
    Effectivement après vérification de la doc mon module Ethernet agit comme serveur. Le socket devra donc etre en client. J'ai vu pas mal de chose sur les threads sur le site je vais donc tester cette voie la

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Par défaut
    j'amerai essayer d'utiliser la methode client.connect , mais il me demande de creer un endpoint pour le moment je fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public void button1_Click(object sender, EventArgs e)
            {
     
     
              clientsockets.Connect(,8000);  
     
            }
    je ne sais pas du tout comment créer mon argument manquant , sauriez vous m'aider ??

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il faut utiliser l'intellisense, pour voir les différentes surcharges
    ensuite pour les paramètre si ca demande un endpoint, bah tu fais un new endpoint et tu regardes ce que ca demande etc...
    sinon y a f1 qui te permet de voir le détail sur les classes et membres du framework
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par leraleur22 Voir le message
    j'amerai essayer d'utiliser la methode client.connect , mais il me demande de creer un endpoint pour le moment je fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public void button1_Click(object sender, EventArgs e)
            {
     
     
              clientsockets.Connect(,8000);  
     
            }
    je ne sais pas du tout comment créer mon argument manquant , sauriez vous m'aider ??
    Connect est surchargé => http://msdn.microsoft.com/en-us/libr...ts.socket.aspx

    Tu peux écrire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const string host = "localhost";
    const int port = 5000;
     
    clientSocket.Connect(host,port);
    Sinon le code que tu as mis dans ton premier post est un bon départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const int port = 5000;
    clientSocket.Connect( new IPEndPoint(IPAddress.Parse("192.168.4.5"), port);

Discussions similaires

  1. Question sur Socket!
    Par kurtiss dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 26/07/2007, 20h51
  2. question sur socket.h linux
    Par doommick31 dans le forum Réseau
    Réponses: 8
    Dernier message: 25/05/2007, 08h11
  3. Réponses: 2
    Dernier message: 18/04/2007, 11h55
  4. [REGEXP] Question Utilisation fonction replace
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 17h39
  5. Question Utilisation cpu
    Par devdev2003 dans le forum Administration système
    Réponses: 4
    Dernier message: 03/12/2005, 17h01

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