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 Discussion :

2 connexions à Internet


Sujet :

Windows

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut 2 connexions à Internet
    Bonjour,

    Je developpe une application sur un ordinateur qui est connecté en permanence à Internet via un modem Cellulaire. Mais cette connection ne doit pas être utilisé par mon application.

    Plutot, mon appilcation aura à établir un connexion à Internet en utilisant un modem téléphonique conventionnel (56k) et la fonction RasDial (RAS) de l'API de Windows.

    Une fois que la connexion RAS sera établie, je devrai envoyer une fichier via le protocol FTP.

    Ma question ici est ; Comment puis-je obliger le système à utiliser la connexion RAS plutot que la connexion cellulaire pour effectuer mon opération FTP ?

    En me basant sur les tests que j'ai fait jusqu'ici, lors que je créer un Socket pour envoyer mon fichier par FTP, les requêtes TCP se font via la connexion cellulaire et non sur la connexion RAS.

    Y a-t-il un moyen de forcer le système (par programmation) pour qu'il utilise le réseau de la connexion RAS ?

    Un gros merci
    Martin
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Peut-être en faisant un bind() de ton socket avant de le connecter (comme si c'était un socket serveur, mais sans faire de listen()), sur:
    • Pas de port (voir dans la doc s'il faut mettre zéro ou -1)
    • L'adresse IP de ton poste selon l'interface du bon réseau (normalement, il y a de grande chances que les deux interfaces obtiennent une IP différente. Sinon, je ne sais pas comment t'aider).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Merci beaucoup, je vais essayer ce truc.

    Toutefois, tu m'as mis sur une piste intéressante.
    - http://technet.microsoft.com/fr-ca/l...04(en-us).aspx
    - http://support.microsoft.com/kb/894564

    Après la lecture de ces deux documents, je me suis rendu compte qu'il est possible de modifier la propriété METRIC des adapteurs réseaux afin de priorisé le routing.

    Toutefois, comme mon application est sur "Windows CE", cette propriété ne semble pas disponible

    J'ai aussi regardé dans les options réseaux pour priorisé la connexion (tel que mentionné dans le deuxième document), mais cela n'existe pas. Ça bien l'air que je ne suis pas au bout de ma peine encore...
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Normalement, c'est juste un problème de table de routage, la seule difficulté étant de la configurer dynamiquement sous CE...

    Peut-être voir du côté de la modification directe en base de registre des valeurs de métrique ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Peut-être en faisant un bind() de ton socket avant de le connecter (comme si c'était un socket serveur, mais sans faire de listen()), sur:
    • Pas de port (voir dans la doc s'il faut mettre zéro ou -1)
    • L'adresse IP de ton poste selon l'interface du bon réseau (normalement, il y a de grande chances que les deux interfaces obtiennent une IP différente. Sinon, je ne sais pas comment t'aider).
    Je crois que ce document explique bien ta théorie...
    http://blogs.msdn.com/zhengpei/archi...omed-host.aspx

    Toutefois, il semble affirmer que même avec un Bind cela ne fonctionne pas. Il priorisera la métric de plus faible valeur.

    Citation Envoyé par Mac LAK Voir le message
    Normalement, c'est juste un problème de table de routage, la seule difficulté étant de la configurer dynamiquement sous CE...

    Peut-être voir du côté de la modification directe en base de registre des valeurs de métrique ?
    C'est sur ça que je fais des recherches depuis ce matin, (modifier la métric via le base de registre), cependant j'ai toute de même deux inquiétudes.

    1) Lorsqu'on j'aurai modifié cette clé dans la base de registre, il faudra probablement redémarrer le driver de l'adapter ou le réseaux ? Ou peut-être redémarrer le PC ?

    2) Si je met la métric de la connexion RAS à manuel avec la valeur "1" alors, il faudra aussi que mettre toutes les autres valeurs métric des connexions existantes (dont la cellulaire) à manuel et avec des valeurs plus élevées. Il y aura certainnement un gros bout de code à faire dans ce cas.
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    C'est moche, il y aurait eu une solution intéressante à propos du bind().
    L'option : SO_DONTROUTE

    Indicates that outgoing data should be sent on whatever interface the socket is bound to and not a routed on some other interface. This option is only Valid for message-oriented protocols. Microsoft providers silently ignore this option and always consult the routing table to find the appropriate outgoing interface.
    Toutefois, cela ne fonctionnera pas dans mon cas, si j'ai bien compris ce qui est en gras
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  7. #7
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    salut,

    Citation Envoyé par Erakis Voir le message
    Ma question ici est ; Comment puis-je obliger le système à utiliser la connexion RAS plutot que la connexion cellulaire pour effectuer mon opération FTP ?
    Si tu veux l'obliger, faut pas le laisser choisir. Pour moi, ton programme doit être en mesure de sélectionner une interface réseau (voir API de l'Internet Protocol Helper / Iphlpapi.lib), et à partir de là il y a plusieurs possibilités, comme y appliquer des fonctionnalités proxy, par exemple.

    Je passe le chemin sur la métrique, ça c'est du bricolage. Enfin c'est ce que je pense.

  8. #8
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Actuellement je travail justement sur le fameux bricolage en question avec les fonctions du genre "SetIpNetEntry" de la librarie "IP Helper". J'essais de comprendre comment tout ça fonctionne, mais j'avoue que je trouve ça assez ordinaire comme solution.

    À propos d'utiliser un proxy, pourriez-vous élaborer un peu là-dessus ? Je ne suis pas sur de bien comprendre comment il me permetterait de priorisé une interface de connexion plutot qu'un autre...
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  9. #9
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    J'ai jetté un coup d'oeil à la fonction "CreateProxyArpEntry", oufff elle est disponible dans ma version de Windows CE 5.0. Toutefois, je ne comprend pas très bien en quoi elle pourait m'être utile dans la résolution de mon problème
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  10. #10
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Alors, il me reste que la modification de la métric comme solution ???
    Ou l'ajout de routes "propres", par exemple en mettant l'adresse IP du serveur utilisé par ton application comme étant exclusivement sur l'interface RAS...

    A voir si c'est faisable (et dans ce cas, autant le mettre "en dur" dans le BSP ou peu s'en faut), sinon il ne restera que les metrics... Sachant que dans ce cas de figure, il est probable que le modem cellulaire soit inutilisable tant que ton appli fonctionne.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  11. #11
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Si j'ai bien compris, la routes propres signifie un ajout dans la table de routing ? Donc spécifié que tout accès au serveur ou j'envoie mon fichier FTP doivent passé par l'interface du modem téléphonique conventionnel ?

    Que voulez-vous dire par BSP ?
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  12. #12
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Si j'ai bien compris, la routes propres signifie un ajout dans la table de routing ? Donc spécifié que tout accès au serveur ou j'envoie mon fichier FTP doivent passé par l'interface du modem téléphonique conventionnel ?
    Tout à fait.

    Citation Envoyé par Erakis Voir le message
    Que voulez-vous dire par BSP ?
    Board Support Package, c'est à dire la partie "custom" de Windows CE, construite via Platform Builder... Là où tu mets tes drivers personnels, les spécificités de la carte CPU, le mapping mémoire, etc.

    Si Platform Builder t'es inconnu, alors tu travailles donc directement avec eVC++ sur un BSP déjà construit (type PocketPC), et tu as donc moins de latitude pour modifier l'OS et ses réglages : c'est pas forcément l'idéal, mais cela doit rester possible de modifier ces routes malgré tout, je pense.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  13. #13
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Je connais déjà Plateform Builder, cependant le manifacturier nous livre les écrans avec tout ce dont nous avons besion.

    Toutefois, plus le projet avance et plus j'estime que Plateform Builder serait un atout, surtout pour des drivers comme modems, convertisseur usb, etc...

    Je vais essayer de jouer un peu avec la table de routing, en espérant que cela fonctionne bien.

    Merci pour votre aide
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  14. #14
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Toutefois, plus le projet avance et plus j'estime que Plateform Builder serait un atout, surtout pour des drivers comme modems, convertisseur usb, etc...
    De mémoire, c'est plus "nécessaire" qu'un "atout"... Un peu comme le DDK sous Windows standard...

    Citation Envoyé par Erakis Voir le message
    Je vais essayer de jouer un peu avec la table de routing, en espérant que cela fonctionne bien.
    Je l'espère pour toi !
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  15. #15
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Actuellement je travail justement sur le fameux bricolage en question avec les fonctions du genre "SetIpNetEntry" de la librarie "IP Helper". J'essais de comprendre comment tout ça fonctionne, mais j'avoue que je trouve ça assez ordinaire comme solution.

    À propos d'utiliser un proxy, pourriez-vous élaborer un peu là-dessus ? Je ne suis pas sur de bien comprendre comment il me permetterait de priorisé une interface de connexion plutot qu'un autre...
    Salut Erakis, salut tout le monde.

    Je suis navré de ne pas t'avoir répondu plus tôt, je dispose de moins en moins de temps et mes interventions finissent par être sporadiques.

    Pour en revenir à ta question, lorsque je parle de "fonctionnalités proxy" dans mon précédent poste, il s'agit avant tout d'une optique "client-serveur".
    D'ailleurs, Médinoc en a fait allusion. Ainsi [IP Helper] te permet de lister tes interfaces réseau tout en ciblant les informations de ton choix et ainsi définir les IP LAN correspondantes. Une fois l'adresse obtenue, tu peux faire une liaison (bind() + sockaddr_in ou sockaddr_storage, accept()) [Winsock2], sous cet angle ton socket prend en charge les connexions entrantes et joue le rolle de "socket serveur". Toujours dans ton application, avec un nouveau socket (connect()), les données sont transmises au "socket serveur" qui les relaye à l'interface précédemment choisie. Il est tout aussi judicieux de définir des ports, voir même dans ce genre d'application de séparer les entités serveur et client en deux applications différentes. D'un côté, un serveur proxy. De l'autre, ton application avec prise en charge de paramètre proxy et là les modifications sur ton application seront forcément minime. Vu l'heure, je ne sais pas si j'ai réussi à être claire, moi même je m'embrouille, mais les grandes lignes sont là.

    Bonne continuation.

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2004, 13h13
  2. Unité Wininet : demande(s) de connexion internet
    Par nouanda dans le forum Web & réseau
    Réponses: 3
    Dernier message: 16/01/2004, 18h56
  3. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01
  4. Tester connexion Internet active sous Windows
    Par Altau dans le forum Développement
    Réponses: 3
    Dernier message: 12/08/2002, 12h43

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