Programmation réseau client serveur

Programmation réseau client serveur - C#/.NET managed - Programmation

Marsh Posté le 27-07-2010 à 17:16:15    

Bonjour
 
Je suis en licence professionnelle réseaux et télécom et ayant les bases en programmation, je souhaiterai votre aide sur un projet.
 
En fait, mon but, c'est de faire une petite applications en client/serveur. Le but étant de récupérer sur le client une variable que je déclare auparavant sur un serveur. Je sais que ça n'a pas grand intérêt, mais c'est pour un examin. Et je cherche depuis pas mal de temps, mais je ne comprend pas toutes les explications.
J'ai compris que les sockets servaient à la programmation réseau, client serveur, qu'il faut winsock(que je n'ai jamais trouvé)mais tout est flou encore dans ma tête.
 
J'aurai voulu savoir si vous pourriez me guider pour :  
 
Savoir par ou je doit commencer?
Télécharger l'outil adéquat pour programmer
 
Votre aide m'est très précieuse car je n'ai jamais développé des applications réseau et je n'ai personne dans mon entourage pour m'aider(ni les profs qui ne répondent jamais à mes mails, et les élèves n'ont pas le même projet que moi).
 
Merci beaucoup :)

Reply

Marsh Posté le 27-07-2010 à 17:16:15   

Reply

Marsh Posté le 27-07-2010 à 20:13:55    

Si tu utilises .Net, oublie l'accès direct à winsock. Il y a beaucoup plus récent.  
Tu parles de client serveur mais tu ne précises pas si tu travailles en LAN ou via internet, si tu as des contraintes de protocole, quelle version de .net tu emploies...
Si .Net 2.0 > .Net Remoting ou webservice (la deuxieme option est celle qui offre la plus vaste compatibilité et le plus de souplesse).
Si 3, WCF.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 27-07-2010 à 20:39:00    

pour l'environnement de développement, tu peux utiliser Visual Studio (2010 et payant) ou la version Express qui est gratuite.  
 
Pour le client serveur, tout est dit
Pour la version 2 de .NET => .NET Remoting
Pour la version 3 ou supérieur .NET => WCF (Windows Communication Foundation).  
 
Tu trouveras sans problème des exemples complets en cherchant sur google.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 28-07-2010 à 09:06:39    

Merci de vos réponses.  
 
TotalRecall :  
 
Je travaille en LAN. Je n'ai pas de contraintes protocole, par contre, la version de .net, je n'ai pas très bien compris. Parle tu du framework 2.0? J'ai installé visual C express et il m'a installé le framework 4.0 d'office.
 
moi23372 :  
 
Avec visual studio 2005, c'est faisable? Je dis sa car j'ai la version 2005 officielle(celle de mon lycée). Parceque dans la version express 2010, je n'ai pas trouvé le composant winsock dans les options.  
J'en ai trouvé des exemples, mais cela emploi l'utilisation de winsock.
 
Fred82 :  
 
On m'a dit que l'utilisation des sockets était la plus simple. J'ai vu des tutos sur internet, ça m'a lair pas très compliqué.
 
Je vous précise l'OS :  
 
Client : Windows XP
Serveur : Windows XP ou 2003 serveur(normalement, ça ne devrait avoir aucune importance, vu que je vais lancer l'application dessus).
 
But : Lancer une appli (console) sur le serveur qui me déclare une ou plusieurs variables. Apparament, ça ne doit pas être trop compliqué... Il faut juste assigner une valeure à des variables et enclencher le processus d'écoute.
A partir du client, établir une connexion vers le serveur pour pouvoir récupérer n'importe quel variable.
 
Bref, je voudrai faire ça le moin compliqué possible car il faut bien que je le comprenne mon programme :). C'est un peu dur de m'y mettre en prog, moi qui suis étudiant en réseau.
 
Merci encore pour votre aide.

Message cité 1 fois
Message édité par garabed02 le 28-07-2010 à 09:07:58
Reply

Marsh Posté le 28-07-2010 à 10:24:55    

Merci Fred82 pour l'instantanéité de ta réponse!
 
Alors :  
 
Si les webservices me permettent de faire ça, pas de problème, j'opte pour le plus simple :). Le serveur WEB peut être un windows XP je suppose. Je vais laisser tomber les sockets pour l'instant, et partir sur du webservice.  
 
Le tuto que j'avai trouvé est celui là :  
 
http://www.phoenixbit.com/site/tut [...] 2tDc2hhcnA
 
Je n'ai fait que du visual basic, du C#, php mais cela date, donc je doit m'y remettre :).
 
Donc, il serai mieux pour moi, comme je suis plus à l'aise dans les bases de données, de créer un serveur web et de créer une base de données avec une table ou je renseigne mes champs, valeurs.
 
Et je crée une page php pour pouvoir interroger cette base avec les champs que je veux. Et je peux accéder à ça via n'importe quel client(en tappant l'adresse par exemple). Un petit site qui me dit, clique ici pour la variable A, clique ici pour la variable B... Et ce lien doit faire référence à un php qui me tire les informations de la requête.
 
Ca me parrâit déjà plus compréhensible comme ça. Maintenant, reste à savoir. Sur la machine locale, je sais que c'est possible. Mais pour une machine du réseau local, cela l'est - il également? Et pour accéder à mon site de n'importe ou, il faudrait un nom de domaine je pense (qui est payant). Moi je m'arrête au réseau local pour l'instant, donc l'accès via un poste local est tout à fait possible, n'est ce pas?
 
Merci encore
 
(PS : Réseau et Télécoms en Réseau sans fil et sécurité... Je n'aime pas du tout mon école, je devais le présenter normalement il y a une semaine, mais tellement que j'étais découragé, je me suis présenté sans rien. Le prof quand même m'a donné une seconde chance de passer en septembre, je me suis dit, tant qu'a faire, je vais essayer, je ne perd rien, donc je me force à me motiver :).

Reply

Marsh Posté le 29-07-2010 à 09:59:07    


 
En fait, je n'ai pas précisément de cahier des charges, c'est moi qui décide de ce que je veux faire. Le but étant simplement de récupérer une variable et de l'afficher.
Peut tu me dire en quoi consiste le full.net? En fait, j'ai déjà bien avancé dans mon projet, comme je suis en stage, j'ai aussi demandé à un développeur s'il pouvai aussi m'aider, il a passé une heure à m'expliquer, et on l'a fait en PHP.  
 
Ce que j'ai fait :  
 
1) Installation de easy php
2) Création d'une petite base de données
3) Création d'une page php avec la requête... et affichage sous forme d'une page WEB.  
 
ça a l'air de marcher plutôt bien :). Et quand je lui ai fait lire vos réponses, il m'a aussi dit qu'avec cette méthode, c'était plus rapide.
 
Donc en gros ça donne ca :  
 
<?php
 
 
mysql_connect( "localhost", "root", "" ); /* connexion à la base de données*/
 
mysql_select_db( "maintenance" ); /*sélection de la base de données*/
 
$requete = "SELECT * FROM `peripherique` ;"; /*création de la requête*/
 
$resultat = mysql_query( $requete ); /*stockage de la requête dans une variable que l'on nomme resultat*/
 
$TBL = array(); /*création d'un tableau vide pour pouvoir le remplir après*/
 
while ( $row = mysql_fetch_assoc( $resultat ) ) { /*création d'une variable nommée row qui permet de parcourir et de stocker chaque valeure de la variable resultat*/
 
 $TBL[$row["nom"]] = $row["valeur"]; /*On utilise le tableau vide TBL que l'on a déclaré auparavant pour faire correspondre le contenu de row qui est le résultat de la requête resultat*/
          /* Si l'on avait 3 lignes, exemple nom, valeure, prix... on aurait du faire : $TBL[$row["nom"]] = $row["valeur"] = $row["prix"];...*/
           
}           /* Fermeture de la connexion à la base de données*/
 
switch( $_GET["action"] ) { /*On donne comme de variable action à la fonction GET*/  
 case "listing": /*dans le cas ou action = listing, on passe à la boucle*/
  foreach ( $TBL as $nom=>$valeur ) { /*Boucle permettant de parcourir le tableau TBL déclaré précédemment et affiche la valeur du nom uniquement*/
   echo "
<a href=\"/index.php?action=affiche&variable=" . $nom . "\"> Taux utilisation " . $nom . "</a>
<br />
   ";
  }
 break;
 case "affiche":
  echo "
Charge : ". $TBL[ $_GET["variable"] ] ."  
  "; /*On affiche le taux d'utilisation du périphérique. Pour afficher également son nom (exemple, processeur, valeurs... on écrit " . $_GET["variable"] . " = "*/  
 break;
}
 
Cette méthode marche, c'est bien du client serveur(car je peux me connecter à partir de n'importe quel PC sur mon réseau local). Vous paraît-elle potable? Pour ma part, je n'avais quasiment jamais fait de php. J'ai compri la majorité des commandes, sauf le GET et les variables action&variable.  
 
J'ai laissé tombé les sockets. Ça me paraissait trop compliqué alors que là, en 1 heure on l'a fait(enfin, le temps de m'expliquer. Sinon, en 5 minutes c'était fait pour lui :). Reste plus qu'à ajouter un peux de couleurs pour que ça ressemble à un mini site.
 
Merci encore pour votre aide.

Reply

Marsh Posté le 29-07-2010 à 10:46:32    

Justement, au début j'étais parti sur du C. C'est bien ce que j'avai décris au début, deux appli séparés, un que je lance sur le client, et un sur le serveur.  
Mais comme je trouvai sa assez compliqué, j'ai fait en base de données(que je connaissais un peux mieux). De mon côté, le prof m'a dit que je pouvais prendre n'importe quelle méthode, n'importe quel OS,.., donc si vous pensez que c'est bon, ça doit l'être :).  
C'est juste pour simuler le protocole SNMP, consulter la variable MIB qui est aussi une base de données.  
Et comme je n'ai pas aussi beaucoups de temps(je pars demain en vacances) et que mon projet viens en septembre, j'ai opté pour le plus simple, mais il serrai intéressant pour moi, de carrément utiliser le protocole SNMP pour expérience personnelle. J'ai lu qu'il y avait pas mal d'utilitaires mais les meilleurs sont payant(Nagios en particulier). Par exemple, afficher le taux d'utilisation du processeur, la rotation des ventilos...
 
Merci


Message édité par garabed02 le 29-07-2010 à 10:48:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed