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

VB.NET Discussion :

Appliquation client/serveur Lan


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut Appliquation client/serveur Lan
    Bonjour

    Comment faire une application avec un client et un serveur destinée a fonctionner sur un réseau privé, en LAN ?
    Je ne sais pas du tout comment faire cela, aussi si vous pouviez me donner des exemples de méthodes/fonctions utiles cela me serrais d'une grande aide .

    la quantité d'informations a échanger seras variable.

    le type d'information a échanger seras surtout du texte, mais plus tard je voudrais peut-être aussi inclure des images ou des fichiers.

    idéalement (mais optionnel) il faudrais que cela fonctionne avec le .NET framework 2.0

    Merci

  2. #2
    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
    la base c'est le socket, à savoir une connexion par ip ou nom de machine, sur un port (1->65536)
    là dessus il y a divers protocoles comme le tcp et l'udp, qui permettent d'envoyer des octets
    l'udp est plus rapide mais ne garanti ni l'arrivée ni l'ordre des paquets d'octets, il est pratique pour du streaming (ou alors avec une fonctionnalité d'intégrité)

    pour faire du tcp/ip en .net il y a la classe system.net.socket
    pas super intuitive, il y a donc les classes tcplistener et tcpclient
    le listener est pour l'hote qui écoute sur un port, le client se connecte à un hote sur le port d'écoute
    c'est pas super intuitif non plus à utiliser mais ca reste plus accessible

    après il faut envoyer des octets, et donc se faire une norme de codage pour l'envoie de commande, de fichier ou autre ...
    il y des subtilités qui te poseront problème, mais on trouve des tutos facilement de nos jours, et maintenant tu sais quoi chercher


    sur le framework 2 c'est tout ce que tu auras, sur le 3.5 il y a wcf, qui encapsule tout ca pour faire un truc plus simple (enfin plus simple à utiliser mais plus compliqué à mettre en place la 1ère fois ^^)

    et pour info internet n'est qu'un "LAN géant", avec le nat sur ipv4 ou l'ipv6 tu peux faire du client serveur sur internet de la même manière (http utilise le tcp/ip par exemple)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Merci pour ces informations, je vais chercher ce que je peut faire avec ça sur google (avant je ne savais même pas quoi chercher ) mais je vais être long, je révise mon oral de français 90% de la journée, mais dans 3 jours ce seras passé et je pourrais vraiment prendre le temps de chercher ça.
    En attendant j'ai quelques questions :
    De quelle manière définit-on un tcplistener ou un tcpclient ?
    Peut-tu me donner s'il te plais les méthodes de bases ou couramment utilisées ? Je veut dire celle qui créer la connexion/l'accepte/déconnecte/envoi des données/les reçois etc.
    Aussi j’aimerais bien fonctionner par évènements pour la réception des données, est-ce que c'est possible ?
    Aussi comment fait-on pour envoyer des octets ? je suppose qu'il faut faire une conversion quelque-part et non envoyer une chaine de caractères directement... un tableau de bytes ?
    J'avais pensé que ce serais bien compliqué de faire deux application distantes qui se connectent, sur deux réseaux différents, a causes des adresses IP de genre "192.168.1.x"... je ne sais pas trop comment dire... Est-ce que c'est possible et comment faire sans utiliser de logiciels comme Hamachi ou NoIp ?

  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
    comme dit précédemment google a réponse à tout quand on sait quoi chercher
    néanmoins je vais continuer mon aiguillage

    le principe du tcp (qui est une connexion connectée (ca parait bête à dire mais c'est ca, l'udp n'est pas connecté))
    demande de connexion côté client, acceptation de connexion côté serveur
    une fois la connexion établie les 2 peuvent s'envoyer des octets n'importe quand
    la déconnexion quand à elle n'est pas toujours simple à attraper (certains méthodes peuvent le savoir d'autres non, le tout pondéré par le matériel)

    toutes les méthodes ont des équivalent asynchrones
    les méthodes simples sont bloquantes, .connect et .read par exemple attendent que la connexion se fasse ou qu'il y ait assez à lire, ceci peut bloquer l'interface, il faudrait donc en théorie démarrer un thread pour le faire
    sinon il a les méthodes asynchrones qui comment par begin (.beginconnect, .beginread ...)
    le principe c'est que la méthode n'est pas bloquante (ca passe à ligne suivante de ton code tout de suite) car ca démarre un thread qui s'occupe d'attendre, en contrepartie tu donnes à ces méthodes une adresse de retour (l'équivalent d'un évènement)

    côté server tu peux appeler beginaccept en lui donnant l'adresse d'une sub à appeler quand un client se connecte, là tu fais .endaccept pour accepter la connexion, et tu refais un .beginaccept pour relancer un thread d'acceptation pour le client suivant
    c'est pareil pour beginread, dedans il faut faire .endread et relancer un beginread

    petit point technique, les octets envoyés et recus sont gérés via des buffer, ceux ci ont une taille limité, quand tu mets plus d'octets que le buffer, il y a donc plusieurs envois
    il faut donc en lecture essayer de recomposer le tout, car si tu envoies ABC tu peux recevoir AB puis C (d'où la nécessite d'une norme, caractère de fin de trame ou entete avec longueur de trame)

    on ne peut envoyer que des octets, après tout peut se transformer en octet
    pour les types simples (nombres et autre) il y a la classe bitconverter
    pour les string, ceux ci sont gérés via des encodages (ASCII, UTF8, UNICODE ...) trouvables dans system.text.encoding
    pour des instances de classe il y a le binaryformatter
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 19
    Par défaut
    Bonjour,

    Pour les programmations en réseau, les sockets sont les bases. Et vu que tu dis que tu ne sais pas du tout comment faire, je te donne un lien pour t’aider. En gros, tu vas comprendre les sockets et comment les manipuler après

    Bon courage et voici le lien http://morpheus.developpez.com/reseauvbnet/

Discussions similaires

  1. ssh et jsch - Appliquation Client / Serveur
    Par Rocknacro dans le forum Général Java
    Réponses: 0
    Dernier message: 28/04/2009, 17h35
  2. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57
  3. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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