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 :

Répertorier les envois/réceptions de message sur un réseau.


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2010
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Répertorier les envois/réceptions de message sur un réseau.
    Bonjour,

    Voilà la situation:
    J'envoie des messages sur un réseau, ces messages contenant des champs. Deux champs sont importants:
    - STRING_1 qui contient un texte type "Champ texte x" (x est incrémenté à chaque message envoyé)
    -STRING_2 contenant un TickCount
    Ces messages sont envoyés avec un Timer à intervalle réguliers.

    Je récupère ensuite ces messages, mon but étant de connaitre le delta de temps entre l'envoi et l'arrivée (d'où le TickCount).

    Seulement voilà, si j'envoie les messages dans l'ordre 1 2 3 4 5, je ne suis pas forcément sûre de les récupérer dans cet ordre. Or je dois afficher en même temps un temps réel du delta, savoir si des messages ont été perdus...
    Et ça me pose problème, comment savoir, si je reçois 1 3 5 4 par exemple,
    1) que j'ai perdu un message (non je ne peux pas les compter, le nombre de messages envoyé n'est pas fixé, il dépend de la durée d'utilisation du programme)
    2) si je suis au numéro 3, dire "ok maintenant t'attends le 4", mais je reçois le 5 avant, donc il faut que je sache que j'ai bien reçu le 5 tout en continuant d'attendre le 4 (pendant un certain temps jusqu'à ce que je considère que c'est trop long et qu'il est perdu).

    En clair, comment savoir les messages que j'ai envoyé, que j'ai reçu, sans faire de tableaux et de manière dynamique (c'est à dire qu'une fois que je l'ai reçu j'arrête de garder en mémoire le fait que je l'ai envoyé et reçu).

    Enfin j'arrive pas à être très claire, n'hésitez pas à poser des questions pour plus de précision.

    Merci.

  2. #2
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    sans faire de tableaux et de manière dynamique?
    ça me parait impossible, comment veut tu vérifier si le ( ou les ) message non pas été reçu? il faudrait que tu les stock quelque part non?

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2010
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Oui mais mon problème c'est qu'un message est envoyé toutes les secondes environ (l'utilisateur choisit mais c'est la période de base) et que l'application est destinée à tourner toute la journée... Ca fait des tableaux énormes qui vont ralentir le programme (si ce n'est faire planter l'ordi) alors que justement le but c'est de mesurer précisément des intervalles :/

    Edit: alors peut-être que je pourrais faire un "tableau glissant", genre qui garde que 10 messages (0 1 2 3 4 5 6 7 8 9 puis 1 2 3 4 5 6 7 8 9 10 etc...). (en plus ça m'arrangerait vu que je dois faire une moyenne mobile ensuite)

  4. #4
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    tu fais un tableau dynamique qui contiendra les messages,
    puis à chaque message reçu tu vérifie si certains messages n'ont pas encore été reçu après un certain TimeOut, tu les vires aussi et tu affiches un messages d'erreur, les messages ne vont pas rester éternellement dans ton tableau

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2010
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Oki je vois, mais comment faire ça? Je vois vraiment pas comment faire "glisser" mon tableau :x
    Et donc je devrais lancer un timeout à chaque message? (peut être que je pourrais utiliser le TickCount enregistré)

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 152
    Points : 12 260
    Points
    12 260
    Par défaut
    Là, je ne comprends plus rien.
    Vous parlez d'envoyer de message et de réception sur un "réseau" mais vous n’indiquez même pas le type de protocole de niveau transport (TCP ou UDP par exemple) que vous utilisez.
    Si c'est TCP, le protocole se charge de tous ces problèmes de timers, de fenêtres glissantes, de retransmission, de fragmentation et packaging etc..
    Si c'est UDP, bin, vous changez pour TCP ou vous copiez le mode de fonctionnement de TCP.
    Les horodatages réseaux sont loin d'être évident et une simple date et heure dans un message est loin de faire l'affaire.

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2010
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    En fait c'est un message qui part sur un bus en multicast, puis sur un QuoteServer, puis MLIP, un firewall, et qui arrive chez Reuters où je ne sais absolument pas ce qui se passe et qui fait à peu près le même chemin au retour. Il me semble tout de même que c'est du TCP qui est utilisé de l'autre coté du firewall.

    Après je ne sais pas ce qui est le plus efficace, il me semblait que le tickCount était suffisant étant donné que c'est propre à chaque ordinateur qui l'utilise, mais je suis ouverte à toute autre proposition.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 152
    Points : 12 260
    Points
    12 260
    Par défaut
    Si votre but est juste de collecter des statistiques sur le temps de parcours dans le réseau, je mettrais assez d'information dans une hashTable à l'envoie du message et à la réception, je récupère ces informations dans la hashTable, je fais mes petits calculs et j'enlève ces informations de la table de hash.

    Réctificatif, je viens de relire le message, si le message contient un TickCount généré localement, je ne comprends pas trop le problème puisque le message contient, à l'arrivé, toutes les informations nécessaires aux statistiques. A moins que des messages peuvent être perdus (et c'est loin d'être sûr) ou qu'il faut faire des statistiques avec des messages non encore retournés.

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2010
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    C'est justement ça la question, car justement des messages peuvent être perdus, et peuvent parfois arriver dans un ordre différent.

Discussions similaires

  1. Envoi d'une message sur la console et l'erreur
    Par al1_24 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 06/02/2012, 12h38
  2. Réponses: 9
    Dernier message: 30/12/2011, 14h54
  3. Réponses: 0
    Dernier message: 01/11/2009, 23h01
  4. Envoi d'un message sur un autre poste
    Par eric8787 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/03/2008, 12h50
  5. Midlet d'envoi/réception de MMS sur un vrai mobile
    Par psykrodelik dans le forum Java ME
    Réponses: 1
    Dernier message: 23/07/2007, 16h24

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