Comprendre UDP

Gaston06 -  
 gaston06 -
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

  1. brupala Messages postés 111174 Date d'inscription   Statut Membre Dernière intervention   14 455
     
    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
  2. gaston06
     
    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