ENVOI BROADCAST MULTICAST AVEC WINSOCK

cs_amadeuss Messages postés 8 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 1 avril 2004 - 1 avril 2004 à 20:03
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008 - 23 mars 2006 à 17:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21621-envoi-broadcast-multicast-avec-winsock

psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
23 mars 2006 à 17:59
ok donc si je met un tcplistener (ou un udplistener coté serveur) et que A1 et A2 sont des ordi qui se servent de la passerelle X1, ils auront la meme IP mais j'aurai 2 port différent c'est ca ? Donc, j'ai juste a transmettre à l'autre client l'adresse port et je peux directement accéder à A1 ou A2, c'est bien çà ?
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
23 mars 2006 à 17:49
citaton :"Bon et si on a juste un modem adsl classique et un hub classique"
ton modem est obligatoirement routeur dans le cas d'un HUB et si tu as un HUB chaque PC a sur ton LAN une IP unique.
Chaque PC qui se connecte a EMULE va utiliser l'adresse NAtté de ton modem (coté internet) et un port, port qui changera d'un de tes PC a l'autre donc les accès internet se feront et arriveront sous la forme AddresseIP:Port.
Donc si l'IP est la même (coté internet de ton modem) pour tous tes PC, la différence se fera par le port qui ne sera pas le meme pour toutes tes machines.
Lit des docs ou fait des recherches sur internet pour mieux comprendre le principe et le fonctionnement des reseaux WAN/LAN
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
23 mars 2006 à 17:31
Bon et si on a juste un modem adsl classique et un hub classique. Emule marche sans configurer quoi que ce soit non ? Comment peut faire Emule ? Car je n'ai jamais rien eu a configurer sur ma passerelle internet pour que emule ou msn marhe sur les autres postes ...
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 mars 2006 à 17:22
Salut Psycho
(sujet, maintes fois débatu sur le forum)
Ton adresse IP internet est en effet unique.
C'est ton routeur qui sert de passerelle avec tes PCs sur ton réseau privé.
Chaque PC possède une adresse IP unique sur ton réseau privé.
Les PCs ne peuvent pas être contactés directement depuis l'extérieur (internet) : Il faut que ton routeur redirige une demande extérieure vers UN des PC : C'est le rôle du servive NAT de ton routeur.
Comme paramètre de ce service NAT, tu lui dis :
Si une demande de connexion venant de l'internet apparait sur le Port X, il ne faut pas bloquer cette demande (par défaut si aucune config particulière), mais il faut rediriger cette demande vers la machine dont l'adresse IP est X.X.X.X.
Certains routeur récents te proposeront des paramétrages tous faits pour les différents jeux et logiciel nécessitant une connexion entrante. Dans ce cas, il suffit de sélectionner le nom correct.

Conclusion : Il ne peut y avoir qu'un seul PC qui puisse devenir la cible d'une demande de connexion venant de l'Internet.
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
23 mars 2006 à 10:45
Mais c'est l'adresse de la passerelle Internet qu'il ont non ? Car tous les ordinateurs de mon réseau dispose de la meme IP (forcement , on a la meme ligne Internet). Donc ce que je me dis, c'est comment fait il pour metttre en liaison directement un ordinateur DANS le réseau avec un autre ordinateur lui meme dans la meme situation. Tu vois ce que je veux dire ?
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
14 mars 2006 à 14:09
pas du tout, tu te connecte a un serveur et c'est lui qui sert de lien entre les utilisateurs ( + les serveurs sont interconnectés), lorsque tu cherche un fichier tu interroge le serveur ou les serveurs et c'est eux qui t'indique l'adresse IP de un ou plusieurs destinataires qui partage le fichier recherché, et a ce moment là, tu contact directement les adresses IP de destination. (donc en épluchant les logs de Firewall ou proxy tu peux avoir les IP (les vrai) des personnes qui partage un fichier (c'est comme cà que l'on peut remonter à toi et savoir que tu as mis des fichiers a dispo.
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
14 mars 2006 à 11:34
pourtant emule le fait non ?
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
14 mars 2006 à 09:16
Les requetes multicast et boradcast peuvent passer les ruouteurs a deux conditions :
- Il faut modifier la valeur TTL (voir une de mes sources) pour augmenter la durée de vie de la trame au travers des routeurs.
- Surtout il faut que les routeurs soient configurés pour laisser passer les flux broadcast et multicast (ce qui n'est pas fait par defaut) et surtout pas sur internet.
Voila donc pourquoi l'envoi de broadcast multicast sur internet ne fonctionnera jamais.
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
14 mars 2006 à 08:29
Bonjour,

Est il possible d'envoyer des mesasge broadcast sur une IP internet et pas sur un reseau local ? Si oui, je sera heureux de pouvoir regarder un code source VB6 (ou VB.NET de préférence) afin de faire un reseau p2p privé.

Merci d'avance si vous avez la solution :
jjmaster Messages postés 51 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 29 septembre 2010 1
25 nov. 2004 à 14:18
exactement ce que je cherchais. Je vais essayer ca tout de suite.

merci
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
26 avril 2004 à 10:35
Tres bonne idee jack, je vais la regarder par curiosité, cela sera de toute facon util pour tout le monde

bonne prog.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 avril 2004 à 10:31
Pour info, j'ai réutilisé ta source pour créer un "chercheur automatique d'application serveur" sous la forme de deux OCX (client et serveur)
= mise en pratique
--> http://www.vbfrance.com/code.aspx?ID=22252
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
2 avril 2004 à 12:09
yop yop, c'etait pas une attaque hein :o)

En effet pour basculer de serveur a backup, oki c du tout bon.

Pour l'ecroulement d'un LAN, j'ai juste besoin d'un Mac avec son protocole AppleShare de toute facon ;o)
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
2 avril 2004 à 12:05
c'etait un exemple bidon, peut etre pas le meilleur, moi ca me sert pour des decouvertes de serveurs, une fois trouvé je recupere son IP et je l'appel en direct par contre si il ne me repond plus je balance un multicast pour rechercher si mon serveur est la ou si je trouve un serveur de backup, si je trouve un serveur j'enregistre son IP et je dialogue apres en direct par son IP, jusqu'a ce que ce serveur ne soit plus dispo alors de nouveau je relance un multicast.
c'est un systeme de bascule de serveurs qui correspond au besoin que j'avais.

pour moi mon systeme marche tres bien, il gere plusieurs clients pour des bascules de mise a jour de produits.

comme je te l'ai dis libre a toi d'imaginer n'importe quoi sache que un multicast bouffe rien en bande passante, juste la taille du string que tu balance quand tu appel SendData, tu peut donc ( j'ai fais des tests et sniffés ) envoyer regulierement des multicast sur ton LAN cela n'ecroulera pas ton debit LAN.
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
2 avril 2004 à 11:50
Oui,
en meme temps, 2 serveurs de backups qui discutent toutes les minutes, y a pas interet a ce qu'ils me broadcastent mon reseau a chaque fois... :o)
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
2 avril 2004 à 11:29
ca depend ce que l'on veut faire mais il est vrai que l'UDP ne va en principe servir qu'a trouver l'autre machine, apres vaut mieux communiquer en TCP donc avec un autre winsock (controle d'erreurs ).

NB : pour des connexions multiples ca marche, l'ideal est de faire des load de WINSOCK avec des index.

mais pour des appli qui n'echangent que des donnees petites et ponctuelles on peut rester sur ce principe,
genre pour un backup de serveur (le serveur1 envoi un multicast toutes les minutes par exemple pour savoir si l'autre serveur est toujours en ligne donc juste echange de par exemple "tu es la" et l'autre repond "je suis la") dans ce cas on peut rester sur ce principe.

mais bon tu es libre de coder ce que tu veux la seule limite est ton imagination, c'est ca que j'aime en programmation.

lol
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
2 avril 2004 à 11:02
Jack> Au cas ou, le port sur lequel le client cherche a joindre le serveur doit rester libre tout le temps. Donc, une fois attaint, la connexion doit se faire sur un autre port.

Je sais pas si tu comptais faire comme ca, au cas ou oui, tant mieux, sinon ben voila de l'aide gratos ;o)
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
2 avril 2004 à 09:50
pour l'IPV6 cela ne depend pas de mon code mais du composant WINSOCK que l'on utilise sous VB.

par contre il faut l'avoir a l'esprit, c'est de l'UDP pas du TCP.
pour l'appli de demo, le temps me manque, je pense que le sample de code doit suffir, si tu t'y connais un peu tu dois t'en sortir, dans le cas contraire il faut continuer a apprendre WINSOCK avant de revenir sur ce code( je ne dis pas ca pour toi Jack, tu as tout compris on dirait, mais je repond a ta question pour les autres)

lol bonne prog a tous
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 avril 2004 à 23:56
Salut thierrydelepine
Punaise ... ça fait trois ans que je tourne autour et que je cherche de la doc partout (sans vraiment approfondir) : Merci, enfin du broadcast.
C'est génial pour faire des programmes en réseau : pas besoin de connaître l'IP du serveur (faut quand même se mettre d'accord sur un port de comm!).
Un p'tit appel du client sur ce port de comm en mode multicast, il lui envoie son IP, le serveur provoque la connexion au client et le tour est joué.
Je suis vraiment content ! merci
Si tu as le temps, laisse nous une petite appli de démo. (je peux te passer la mienne --> bal)
cs_amadeuss Messages postés 8 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 1 avril 2004
1 avril 2004 à 20:03
bonsoir...
pas mal sur le principe mais est il possible de développer sous VB6.0 de l'unicast ou du multicast en IPv6 ?
(en fait je cherche un truc du genre client serveur classique (winsock) mais en IPv6...)
merci ;-)

Amadéu'SSS
Rejoignez-nous