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

Framework .NET Discussion :

[Réseau] Comment transporter des objets à travers un réseau ?


Sujet :

Framework .NET

  1. #1
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut [Réseau] Comment transporter des objets à travers un réseau ?
    J'aimerais savoir s'il est possible de transporter des objets complets (du genre Image, par exemple) à travers un réseau, d'un PC à un autre, en local ou à travers internet.

    Application client/server donc, j'aimerais en gros savoir s'il existe un moyen de "cacher" l'utilisation des sockets.

    Actuellement, j'utilise la serialisation/déserialisation et des sockets, je me demandais s'il n'y avait pas plus simple ?

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    Si tu travail en Dotnet 1.1 ou 2.0 tu as le .NET Remoting.

    Si tu bosses en 3.0 tu as soit le .NET Remoting soit WCF.

  3. #3
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Plutôt sympathique le remoting.

    Je vais préciser un peu ce que je fais exactement.
    J'ai un client - revendeur de matériel informatique qui fait aussi de la maintenance - qui aimerait faire du support à distance.
    En gros, il ne veut plus avoir à se déplacer pour résoudre des problèmes logiciels.

    mstsc ne lui convient pas parce qu'il souhaite, pour des raisons de sécurité juridiques, que ça soit le client, et non lui, qui initie la connexion devant lui donner accès au support à distance.

    Les solutions déjà existantes ne lui conviennent pas non plus, parce qu'il n'a pas confiance : on est jamais certain, selon lui, de la vraie nature de la connexion (p2p ou via un server tier).
    Lui, il veut une connexion p2p claire et nette.

    Donc, en gros il me demande de réinventer VNC.

    Globalement, comment vous vous y prendriez pour faire ceci ?

    (j'oubliais, je travaille en .net 2.0)

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Démarrer / Tous les programmes / Accessoirses / Communication / Connexion bureau à distance

    (Remote Desktop Connection en anglais)

  5. #5
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par Mose
    Démarrer / Tous les programmes / Accessoirses / Communication / Connexion bureau à distance

    (Remote Desktop Connection en anglais)
    C'est mstsc ça. Et ça lui convient pas.

  6. #6
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Citation Envoyé par davcha
    C'est mstsc ça. Et ça lui convient pas.
    Ahhhh mstsc...
    je viens de comprendre

    Bon courage à toi en tout cas.
    Je suis sûr à 95% qu'une solution en full .Net ça sera soit pas possible, soit terriblement lent.
    Falloir passer par win32 (en interop) pour optimiser tout ça...

    Maintenant, si tu y arrives, chapeau.

  7. #7
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par Mose
    Ahhhh mstsc...
    je viens de comprendre

    Bon courage à toi en tout cas.
    Je suis sûr à 95% qu'une solution en full .Net ça sera soit pas possible, soit terriblement lent.
    Falloir passer par win32 (en interop) pour optimiser tout ça...

    Maintenant, si tu y arrives, chapeau.
    C'est pas le pb de la lenteur qui m'inquiete mais celui de la sécurité .

    A moins que tu soit un dieu en sécurité info, un dev perso à bcp de chance de se faire cracker qu'une solution déjà existante.

    Maintenant dans Windows tu a l'invitation d'aide à distance qui existe aussi ... et la le logiciel ne se lance que si tu fait la demande d'aide ...

    Bref, tu peut le faire en full .NET y a pas de pb mais :
    - tu vas avoir tout pelin de pbs de sécurité
    - C'est un travail titanesque de recoder toute les fonctions d'accès au système ...

    A mon avis la meulleur solution est une solution batarde : Un écrit un soft qui autorise Terminal Server sur le PC client et il se connect en TS. Quand ton soft est fermé, ll'autorisation de connexion avec TS l'es aussi ...

  8. #8
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Je pensais que ça allait être titanesque également quand ce client m'a demandé ce travail.
    Dans le genre, il me disait "j'aurais besoin que tu me fasse un petit programme genre mstsc à l'envers", et j'entendais "j'aurais besoin que tu me reprogrammes windows".

    Mais en définitive c'est pas aussi titanesque que ça, quant aux problèmes de sécurité, à moins qu'un petit malin s'amuse à spoofer la connexion tcp (bon courage à lui) je vois pas trop quel problèmes pourraient survenir... (Enfin, mieux vaut en parler tout de même).


    Grosso modo comment cela va se passer pour les utilisateurs :
    Donc, un client (un particulier, par exemple) a un soucis logiciel sur son PC, PC qui est muni d'une connexion internet.

    Il téléphone au revendeur de matériel informatique (qui fait également la maintenance), ce dernier demande au client d'aller cliquer sur un lien internet (en fait un lien proposant un petit programme en téléchargement).
    En définitive, ce petit programme est la partie cliente de mon application.

    Pendant ce temps, le revendeur de matériel info execute la partie serveur de mon application, et débloque par la même occasion le port utilité par l'application.

    Le client exécute la partie cliente de mon application et appuie sur un bouton "connexion".

    A partir de là, le revendeur de matériel informatique a une interface du type mstsc avec laquelle il peut contrôler le PC du client.


    Grosso modo comment je compte m'y prendre :
    Le programme exécuté chez le client va régulièrement prendre un screenshot du bureau virtuel et l'envoyer sur le programme exécuté chez le revendeur info.

    De son côté, le programme exécuté chez le revendeur info (le serveur donc), va afficher ces images au fur et à mesure qu'il les reçoit sur une interface graphique et également va capturer les événements d'entrée clavier et souris de cette interface graphique.
    Les événements ainsi capturés sont ensuite renvoyés chez le client...

    ... Et le programme chez le client va faire appel à la fonction SendInput pour chaque événement I/O reçue, ce qui aura pour effet de reproduire les entrées souris et clavier chez le client.



    Alors, jusqu'ici je n'ai pas tellement travaillé sur SendInput, parce que cette fonction est vraiment simple à utiliser et que ce n'est pas mon principal soucis.
    Je suis parvenu à contrôler mon PC portable à distance avec mon PC de bureau.

    Mais gros problèmes... Ca bouffe un max de ressources CPU.... Et vu la taille des images que j'envoie à travers le réseau, j'ose même pas imaginer ce que ça risque de donner sur internet, d'autant plus si un client a le malheur d'utiliser une connexion 56k....

    Je dois bien avouer que les sockets tout ça, c'est pas mon fort, donc j'aurais bien besoin de quelques conseils pour m'aider à optimiser un peu les perfs du truc.

Discussions similaires

  1. [Débutant] Comment inverser des matrices dans un réseau de cellules ?
    Par Seb_Ciu dans le forum MATLAB
    Réponses: 1
    Dernier message: 14/03/2014, 13h43
  2. Envoyer des objets sur le réseau avec une midlet
    Par asnaeb dans le forum Développement Mobile en Java
    Réponses: 3
    Dernier message: 26/08/2011, 20h40
  3. Réponses: 1
    Dernier message: 14/05/2008, 14h13
  4. Réponses: 2
    Dernier message: 19/09/2007, 11h21
  5. Réponses: 13
    Dernier message: 09/05/2006, 17h30

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