Comprendre UDP

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

  • Votes
  • Date
  • Date décroissante
  1. 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 .
    1. 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