Récupération de données

damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011 - 3 janv. 2011 à 10:55
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011 - 5 janv. 2011 à 09:33
Bonjour,
J'ai pour projet de récupérer auprès d'un régulateur les données qu'il renvoie via un câble ethernet en modbus TCP sur mon ordinateur. Je connais son adresse IP mais je ne sais pas quel code il faut utiliser pour récupérer une valeur avec une adresse IP. Si quelqu'un pouvait me renseigner.
Merci d'avance.

9 réponses

Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
3 janv. 2011 à 11:33
Bien le bonjour,

Via TCP, tu peux inscrire un client via le code que voici.

Shao.
0
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011
3 janv. 2011 à 18:44
Donc en tapant: TcpClient() avec dans les parenthèses mon adresse IP je vais récupérer la valeur que renvoie mon régulateur ?
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
3 janv. 2011 à 19:34
Il te faut également spécifier un port.
Ton code client va alors ressembler à quelque chose comme ceci:
Try
{
  //A changer selon le port utilisé pour la communication
  Int32 port = 13000;
  TcpClient client = new TcpClient(server, port);

  Byte[] data = new Byte[256];
  String responseData = String.Empty;

  NetworkStream stream = client.GetStream();
  Int32 bytes = stream.Read(data, 0, data.Length);
  responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);

  //Faire un traitement avec les données récupérées

  stream.Close();         
  client.Close();     

  catch (ArgumentNullException e) 
  {
    Console.WriteLine("ArgumentNullException: {0}", e);
  } 
  catch (SocketException e) 
  {
    Console.WriteLine("SocketException: {0}", e);
  }

}

Cet exemple n'est autre qu'un condensé de l'exemple MSDN disponible a l'adresse que je t'ai fourni précédemment.
Petite question que je me pose, est-ce que le protocole utilisé par le régulateur de données est bien TCP (vs UDP)?

Shao.
0
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011
4 janv. 2011 à 09:45
Merci beaucoup pour tes réponses, et oui le protocole utilisé est bien TCP.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011
4 janv. 2011 à 09:52
Mais dans le code de l'exemple MSDN, à quel moment on vient rentrer l'adresse IP du régulateur?
Je n'arrive pas à bien déchiffrer le code.

DAM.
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
4 janv. 2011 à 10:01
C'est une méthode qui est présentée dans l'exemple et l'adresse IP est donc transmise par paramètre.
Il te suffit de spécifier l'adresse IP sous la forme classique suivante:
Int32 port = 13000;
string ip = "192.168.2.100";
TcpClient client = new TcpClient(ip, port);


Shao.
0
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011
4 janv. 2011 à 10:33
D'accord et pour le port j'en choisis un ? Car rien ne m'a été spécifié à propos de cela.
0
Shaolyne Messages postés 155 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 8 mars 2011 1
4 janv. 2011 à 15:05
Concernant le port, je ne peux t'aider.
Tu dois vérifier quel port est utilisé par la partie serveur...
Consulter les personnes responsables du régulateur tu dois, la solution tu auras !

Shao.
0
damieniut Messages postés 9 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 18 janvier 2011
5 janv. 2011 à 09:33
Merci, je vais contacter le fournisseur.
0
Rejoignez-nous