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

Windows Forms Discussion :

Programmation en réseau


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut Programmation en réseau
    Bonjour,
    Je cherche à mettre en place une application client-serveur en utilisant les sockets.
    Pour l'instant, j'utilise un thread dans une boucle infinie qui permet de récupérer une donnée envoyée par une sonde, cette donnée est affichée dans un textbox.
    Je souhaiterai créé une zone de mémoire partagée ou autre qui récupérait la donnée avec la sonde et qui elle ensuite permettrait de l'afficher dans le textbox.
    La zone de mémoire partagée serait reliée à un serveur tcp, dans une nouvelle appli (ça peut être autre chose que C#, comme ça ça me fait travailler sur 2 langages) les clients demanderaient à celui-ci de récupérer la donnée stockée dans la zone de mémoire partagée puis le serveur la transmettrait.
    Je ne sais pas si je suis très clair mais si non n'hésitez pas à ma demander des précisions supplémentaires.
    Donc du coup je cherche des pistes pour m'aider à avancer.
    Merci par avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    .net remoting
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Je pense que WCF permettrait de faire cette communication TCP (pas sûr)

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    wcf ressemble à .net remoting, dans les 2 cas on a pas à écrire la couche de transfert (qui est plutot chiante et comporte des pièges)
    on ne s'occupe de choisir les données qu'on veut transférer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    .net remoting
    Peux-tu être plus précis puisque là ça me parle pas beaucoup ?

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par zoubidaman Voir le message
    Je pense que WCF permettrait de faire cette communication TCP (pas sûr)
    C'est également possible en utilisant un socket la classe TcpClient de C# si j'ai bien compris non ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    google te donnera des détails sur ces technologies
    ce sont des surcouches des classes socket
    pour .net remoting en gros tu exposes une instance de classe et les clients une fois connecté lisent les propriétés comme si l'instance étaient chez eux, le dialogue tcp est encapsulé
    pour wcf tu exposes des membres de classes qui deviennent accessibles sur les clients
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci, je vais chercher des informations supplémentaires.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Pour ma zone qui récupérerait la donnée envoyée par la sonde et qui permettrait l'affichage dans mon textbox puis qui serait relieée au serveur, des idées ?
    Je vais commencer par ça puis je dois pas avoir besoin de .NET remoting vu ce que j'ai lu pour l'instant

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Si je me souviens bien, il vaut mieux utiliser WCF, qui est plus récent et performant que le .NET remoting.

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par zoubidaman Voir le message
    Si je me souviens bien, il vaut mieux utiliser WCF, qui est plus récent et performant que le .NET remoting.
    Ok je vais regarder de ce côté là aussi alors.
    Et ça pourra gérer ma zone de mémoire partagée (ou autre, ce qui récupère la valeur de la sonde) ?

    Edit : Au début je pensais m'aider avec ça : http://morpheus.developpez.com/reseaucsharp/, ce serait pas plus simple ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Comme je l'ai laissé sous-entendre, je ne connais pas super bien WCF. Par rapport à ce que tu pensais utiliser, c'est plus haut-niveau je pense, et ça t'évite de te prendre la tête justement avec les sockets et compagnie

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par zoubidaman Voir le message
    Comme je l'ai laissé sous-entendre, je ne connais pas super bien WCF. Par rapport à ce que tu pensais utiliser, c'est plus haut-niveau je pense, et ça t'évite de te prendre la tête justement avec les sockets et compagnie
    Ok merci je vais voir ce que je peux faire avec WCF puis dans le pire des cas je reviendrai à mes sockets. Mais la zone qui récupère la donnée et qui peut la transmettre au serveur puis au textbox n'est pas concernée par WCF si ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Non. WCF gère la partie réseau.

    Dans la mesure où la récupération de tes données par la sonde, et l'affichage et l'envoi de ces données se font dans le même processus (ton server), tu n'as pas besoin de mémoire partagée au sens où elle est généralement définie (c'est à dire entre plusieurs applications)

    Il te faut juste trouver un moyen pour stocker ces données dans une classe globale à ton application, et que tes différents composants interrogent cette classe pour récupérer les données.

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour tes conseils, je vais essayer d'avancer un peu maintenant.

  16. #16
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Salut

    petite remarque en passant, WCF / Remoting, c'est pratique, "facile" à mettre en place et à utiliser (quoi que pour les event en remoting, c'est pas trivial)
    par contre, en terme de perfo, c'est vraiment "pas" rapide...

    Si tu as besoins de perfo, utilise les Socket (TcpClient ou UDPClient) (l'UDP étant ce qu'il y a de plus rapide)...

    Après, si tu veux faire une archi genre Corba, mieux vaut regarder WCF ou Remoting (mais à titre indicatif, c'est 10fois plus lent que du Corba C++))
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  17. #17
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Salut

    petite remarque en passant, WCF / Remoting, c'est pratique, "facile" à mettre en place et à utiliser (quoi que pour les event en remoting, c'est pas trivial)
    par contre, en terme de perfo, c'est vraiment "pas" rapide...

    Si tu as besoins de perfo, utilise les Socket (TcpClient ou UDPClient) (l'UDP étant ce qu'il y a de plus rapide)...

    Après, si tu veux faire une archi genre Corba, mieux vaut regarder WCF ou Remoting (mais à titre indicatif, c'est 10fois plus lent que du Corba C++))
    Oui j'ai besoin de perf puisque le traitement des données est rapide et de + actuellement j'utilise un thread donc les socket ce serait sûrement mieux, par contre sur mon schéma le protocole c'est tcp donc je vais rester là dessus.
    Par contre, j'ai jamais travaillé là dessus donc je sais pas trop comment organiser ça donc si tas des exemples de code ou autre je suis preneur.
    Merci pour ta réponse et les précisions

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par ced56 Voir le message
    Oui j'ai besoin de perf puisque le traitement des données est rapide
    C'est à dire? Combien de paquets par seconde?

    Citation Envoyé par ced56 Voir le message
    de + actuellement j'utilise un thread donc les socket ce serait sûrement mieux
    Quel est le rapport?

    Je maintiens ma proposition du WCF, qui te permettrait de prototyper rapidement ton appli. Et si les perfs n'étaient pas au RDV malgré tout, tu aurais déjà ton architecture de prête, et tu n'aurais plus qu'à utiliser les sockets.

  19. #19
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Alors la sonde transmet une donnée toutes les 700 millisecondes environ, pour les paquets je sais pas sinon pour le rapport je sais pas je suis perdu là.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Tu veux envoyer par TCP un paquet contenant les infos de la sonde dès que celle-ci t'a envoyé ce qu'il faut?

    Parce que si c'est le cas, tu peux sans aucun souci utiliser WCF, ça tiendra largement la route.

    Est-ce qu'un évènement est géré quand la sonde envoie des infos? Tu es averti comment?

    Parce que je verrais bien un système à base d'évènements. Ta classe qui utilise la sonde émet un évènement chaque fois qu'elle reçoit des infos de la sonde. A sont tour elle émet un évènement, qui va contenir comme argument les infos de la sonde.

    Ta classe d'affichage dans le textbox et ta classe d'envoi sur le réseau s'abonnent à l'évènement de ta classe pour la sonde, et font leur job à chaque évènement.

    J'espère avoir été clair :p

Discussions similaires

  1. programmer un réseau de neurone
    Par chiraz01 dans le forum SAS STAT
    Réponses: 5
    Dernier message: 04/05/2010, 17h26
  2. PHP-GTK et programmation en réseau
    Par palaki dans le forum GTK+ avec PHP
    Réponses: 1
    Dernier message: 29/07/2008, 13h10
  3. programmer en réseau sans les sockets
    Par darkbob dans le forum Développement
    Réponses: 4
    Dernier message: 21/06/2007, 15h23
  4. Programmer un réseau de neurones impulsionnels ou SNN
    Par @matlab@ dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/02/2007, 10h47
  5. Comment programmer le réseau de Kohonen ?
    Par last30 dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/01/2007, 09h47

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