Comment choisir une carte réseau pour une connection TCP ?

Comment choisir une carte réseau pour une connection TCP ? - API Win32 - Programmation

Marsh Posté le 28-09-2007 à 17:33:50    

Je développe un soft d'envoi de mails (C++ Builder / composants Indy 9). Tout allait bien jusqu'au jour ou un utilisateur a eu absolument besoin de 2 cartes réseau sur le PC : une pour l'intranet et l'autre pour l'extérieur. :sweat:  
Windows ne sait pas trop sur quelle carte établir la connection sortante vers le serveur SMTP (smtp.orange.fr). Une fois sur deux, il utilise la mauvaise carte et la connection  échoue. :cry:
 
Existe-t-il un moyen de spécifier la carte réseau à utiliser ? D'après son nom ou son numéro dans la config réseau ou son adresse mac ou ... ?
En espérant que ce moyen existant (?) dans l'API Win32 existe également dans le composant Indy 9. :sol:  

Reply

Marsh Posté le 28-09-2007 à 17:33:50   

Reply

Marsh Posté le 28-09-2007 à 21:08:25    

C'est bizarre ca.... normalement tu n'as pas a t'occuper de quelle carte reseau Windows utilise. Comment sais-tu que la connexion echoue a cause de ca?

Reply

Marsh Posté le 28-09-2007 à 21:35:59    

Mouais ça sent le problème de routage là.
 
Ma boule de cristal semble suggérer que les deux réseaux utilisent un espace d'adressage compatible et windows pense que c'est le même réseau, du coup, il te fait un load-balancing entre les deux.

Reply

Marsh Posté le 02-10-2007 à 11:39:42    

@ Ace17:
Je sais que les connexions échouent pour cette raison tout simplement parce qu'avec une seule carte réseau tout est ok. Ce soft a été installé sur 4 PC sur lesquels il tournait sans problème. Sur 3 de ces PC l'ajout de la seconde carte réseau a déclenché les problèmes intermittents de connexions. Le quatrième est, lui, toujours ok avec sa carte unique.
 
@ tpierron:
C'est effectivement un problème de routage. De nombreux essais on été tentés avec la commande ROUTE mais ça n'a (bizzarement) pas donné grand chose.
 
J'espérais pouvoir ajouter un paramètre dans mon fichier de config pour fixer de manière sûre la carte à utiliser via l'API Win32...

Reply

Marsh Posté le 02-10-2007 à 19:44:36    

Quel est le protocole utilise par ton soft ? C'est au dessus de TCP? Ou UDP?
Tu peux egalement tenter de sniffer ce qui passe sur ton reseau local pour voir si tu recois effectivement la requete perdue...
Que donne "route print" chez toi?

Reply

Marsh Posté le 03-10-2007 à 18:23:22    

Le soft se connecte en TCP client sur un serveur SMTP (RFC821) pour envoyer les mails.
Pour le "route print" ou le snif, faut que je mettes mon client dans le coup. D'ailleurs ça serait bien si je pouvais reproduire en interne  :sarcastic:  

Reply

Marsh Posté le 03-10-2007 à 19:25:58    

Et tes clients qui ont deux cartes reseau, ils n'ont pas des problemes pour naviguer sur Internet?

Reply

Marsh Posté le 05-10-2007 à 18:24:14    

Les PC sur lesquels sont installés le soft sont dédiés pour certaines tâches automatiques (mail, transferts de fichiers, ...). En temps normal, personne ne les manipulent.
Bref, rien sur l'API Win32 pour imposer une carte ?  :heink:

Reply

Marsh Posté le 05-10-2007 à 19:04:49    

lsdYoYo a écrit :

Les PC sur lesquels sont installés le soft sont dédiés pour certaines tâches automatiques (mail, transferts de fichiers, ...). En temps normal, personne ne les manipulent.

L'idee derriere ma question etait de savoir si les autres applications qui utilisent Internet sur ces PCs ont le meme probleme. Parce que je ne vois pas comment les autres applications pourraient deviner quelle est la bonne carte reseau ...

Reply

Marsh Posté le 10-10-2007 à 15:25:26    

Bon, après tout, la science informatique conserve (encore) une part de rationnel : le problème ne venait pas du routage des connexions sortantes.
En me replongeant dans mes sources, notamment sur la méthode de connexion TCP, je suis tombé :pt1cable: sur un paramètre avec une valeur inattendue : celui du TimeOut de connexion. Sa valeur était de 1000 milli-secondes. Je devais être bourré ce jour là, mais évidemment, comme tout se passait bien jusqu'à présent...
J'ai porté cette valeur à 7 secondes et tout est ok. J'imagine qu'avec 2 cartes réseaux, la connexion demande un pouillème plus de temps.
 
Quant à la méthode pour sélectionner une carte réseau en particulier avec l'API Win32, on verra plus tard.
Merci à tous.


---------------
If I want to fail and succeed, which I have done ?
Reply

Sujets relatifs:

Leave a Replay

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