Comment faire du multicast ?

thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 - 19 juin 2003 à 16:45
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 23 juil. 2007 à 16:56
bonjour,

je cherche a faire en visual basic une appli cleint qui diffuse un multicast sur un lan et une autre appli serveur qui recoive ce multicast et qui renvoie a l'appli client son adresse IP pour raccrocher la connexion UDP et lancer une connexion TCP sur ce serveur.

Comment faire en VB du multicast ?

le broadcast n'est pas suffisant car un broadcast 255.255.255.255 voit les machines qui sont routés et si ce routage est fait par des routeurs les broadcast ne passe pas ceux ci, alors qu'un multicast n'as pas besoin de routage pour atteindre des machines qui ne sont pas situé sur la même plage d'adresse IP que l'emetteur de ce multicast.

Un grand merci à la personne qui m'apportra une solution.

6 réponses

Delbeke Messages postés 200 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 18 novembre 2005
19 juin 2003 à 17:22
J'ai ecrit un composant qui utilise les mailslots . je ne crois pas que les mailslot passent les routeurs. En fait dans le temps on avait WinPopup qui utilisait cette techniques de maillot
Vous pouvez télécharger le composant et ses sources sur mon site
http://www.delbeke.fr/informatique/index.html

Peut être çà aideras

Jean-Luc
0
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
19 juin 2003 à 17:35
merci de ta reponse, je n'ai pas encore eu le temps de tester si ton prog correspond a mon besoin.
precision : je ne cherche pas a passer des routeurs, les deux machines client et serveur sont sur le même hub donc le même fil par contre une machine est en 192.168.2.x et l'autre en 193.40.2.x.
les routeurs reliés eux aussi au hub servent de passerelle vers deux WANs et en même temps servent à router les deux LAN si on fait du TCP. Par contre je sais que les broadcast ou multicast ne passeront pas les routeurs mais comme mes deux machines sont sur le même fil (même LAN), je dois pouvoir faire communiquer ces deux machines via le multicast.

je cherche donc simplement à initier une connexion multicast.

Voila,
je testerai, encore un grand merci pour ta reponse.
0
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
20 juin 2003 à 12:14
Bonjour, j'ai testé ta solution et elle ne marche pas si un routage entre deux plages d'adresses IP n'existe pas.
Donc ce n'est pas du multicast.

test : une machine en 192.168.2.20, l'autre en 193.0.168.2.1
sans routage.

Je te remercie tout de même de l'attention que tu aura porté à mon message.
0
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
1 juil. 2003 à 10:43
Merci a l'auteur

'**************************************
' Name: IP Multicasting with Winsock con
' trol
' Description:Implements IP multicasting
'
' By: Iulianos Kakulidis
'
'This code is copyrighted and has' limited warranties.Please see http://w
' ww.Planet-Source-Code.com/xq/ASP/txtCode
' Id.29005/lngWId.1/qx/vb/scripts/ShowCode
' .htm'for details.'**************************************

It's easy To add IP Multicasting functionality to VB's Winsock control. First, create a new standard EXE project, name it Sender. Set the Caption Property of the form to MSender. Draw on the form TextBox and WinSock controls. Set the Protocol propertyof WinSock to sckUDPProtocol, RemoteHost to 224.0.0.1, RemotePort to 9000. Add the code bellow to the form and save project.

Private Sub Form_Load()
Winsock1.Bind 5000
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyReturn Then
Winsock1.SendData Text1.Text
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End If
End Sub
Now, create new project, name it Listener, Set the Caption Property of the form To MListener. Draw on the form TextBox and WinSock controls. Set the Protocol property of WinSock to sckUDPProtocol. Set the property MultiLine of the TextBox to true, ScrollBars to 3 (both). Add the code bellow to the form.

Private Sub Form_Load()
Dim ipmreq As ipm_req
Winsock1.Bind 9000
ipmreq.ipm_multiaddr = inet_addr("224.0.0.1")
ipmreq.ipm_interface = 0
'join group
setsockopt Winsock1.SocketHandle, _
0, 5, ipmreq, Len(ipmreq)
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim stdata As String
Winsock1.GetData stdata
Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & stdata
End Sub
Add the module To the Listener project With the code bellow, save the project.

Public Type ipm_req
ipm_multiaddr As Long
ipm_interface As Long
End Type

Public Declare Function setsockopt Lib "wsock32" _
(ByVal s As Integer, ByVal level As Integer, _
ByVal optname As Integer, ByRef optval As Any, _
ByVal optlen As Integer) As Integer

Public Declare Function inet_addr Lib "wsock32" _
(ByVal cp As String) As Long
Run Sender and Listener applications. Type message In Sender's TextBox, press Enter, the same text will appear in the TextBox on the Listener's form. Tested on local network
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
13 mars 2006 à 10:07
Tu n'aurai pas ce code en .NET avec les sockets du framework ? Tu me sauverai la vie !

Merci d'avance !

L'homme était,est et sera un éternel apprenti
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
23 juil. 2007 à 16:56
Bonjour

Voir mon site (NHPopup)

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
0
Rejoignez-nous