Comprendre UDP

Fermé
Gaston06 - 11 déc. 2006 à 14:21
 gaston06 - 12 déc. 2006 à 12:55
Bonjour à tous,
J'ai deux ordis en réseau. Je les fais communiquer en UDP avec un petit programme utilisant le contrôle Winsock de VB5. Ça marche très bien, mais au début j'ai fait des bétises et pourtant ça marche. Pourquoi:
1: si je ne mets pas l'instruction Bind, ça marche quand même!
2: j'ai changé d'ordi en oubliant de changer l'adresse IP du destinataire, et ça marche encore!! J'ai revérifié.
3: si je coupe un ordi et que l'autre essaie de communiquer, il reçoit un message d'erreur 10054. Pourtant en UDP on ne devrait pas savoir ce qui se passe à l'autre bout!!!
Configuration: deux PC sous XP, avec un routeur Cegetel (Inventel) entre. Je soupçonne ce routeur de faire du zèle...
Merci pour toute info ou pointeur sur l'explication.
Gaston06

2 réponses

brupala Messages postés 110763 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 8 janvier 2025 13 891
11 déc. 2006 à 23:48
là,
il faudra documenter un peu plus si tu veux vraiment qu'on t'aide un peu plus .
tu ne ferais pas du multicast par hasard .
0
Multicast? je crois pas. Voici le code:
-------------------------------------------------------
Public Sub InitialisationUDP()
'c'est le même programme qui tourne sur les deux PC
Winsock1.Protocol = sckUDPProtocol
If Winsock1.LocalHostName = "MEDION" Then cePChost = True
If cePChost Then
Winsock1.RemoteHost = "192.168.1.19" 'Toshiba
Winsock1.LocalPort = 50000: Winsock1.RemotePort = 50001
Else
Winsock1.RemoteHost = "192.168.1.15" 'Medion
Winsock1.LocalPort = 50001: Winsock1.RemotePort = 50000
End If
Winsock1.Bind Winsock1.LocalPort, Winsock1.LocalIP
End Sub

Public Sub EnvoiUDP(ByVal Message As String)
TCO.Winsock1.SendData Message
End Sub

Public Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'MessageEntrant est un string public
On Error GoTo ErrorHandler
Winsock1.GetData MessageEntrant, vbString
Exit Sub
ErrorHandler:
Debug.Print "erreur " & Err.Number & ": " & Err.Description
Resume Next
End Sub
-----------------------------------------------------------
J'ai aussi essayé avec le même port dans les deux sens: c'est pareil.
Merci,
Gaston06
0