Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19
Commandes UDP, Présentation

Commandes UDP, Présentation  


 

 

UDP (User Datagram Protocol) est un protocole de communication réseau déconnecté permettant la transmission de données par paquets. Facile à mettre en oeuvre, il est plus rapide et plus simple que le protocole TCP (l’en-tête UDP tient sur 8 octets, à comparer aux 20 octets minimum de l’en-tête TCP), mais il n’offre pas le même niveau de fiabilité. Il est adapté aux applications privilégiant la rapidité de transmission des données. En revanche, il ne permet pas de vérifier que les paquets sont bien arrivés à destination et ne propose pas de contrôle d’erreur ni de système de récupération.

Exemple  

L’exemple suivant utilise le protocole UDP pour récupérer dans des tableaux la liste de tous les postes 4D Server actifs sur le réseau local:

 ARRAY TEXT(taHost;0)
 ARRAY TEXT(taNomMachine;0)
 ARRAY TEXT(taService;0)
 ARRAY TEXT(taNomDB;0)
 C_BLOB($Blob)
 
 $Addr:="255.255.255.255"
 $Port:=19813
 $Offset:=32
 SET BLOB SIZE($Blob;96;0)
 TEXT TO BLOB("4D Server II";$Blob;Mac text without length;$Offset)
 
 $Err:=UDP_New(0;$udpRef)
 $Err:=UDP_SendBLOBTo($udpRef;$Addr;$Port;$Blob)
 $Secs:=5
 $Timeout:=Milliseconds+($Secs*1000)
 Repeat
    DELAY PROCESS(Current process;6) `... en ticks
    SET BLOB SIZE($Blob;0;0)
    $PeerAddr:=$Addr
    $Err:=UDP_ReceiveBLOBFrom($udpRef;$PeerAddr;$Port;$Blob)
 
    If(BLOB size($Blob)>0)
       $Offset:=0
       $Host:=BLOB to text($Blob;Mac C string;$Offset;32)
       $Offset:=32
       $Service:=BLOB to text($Blob;Mac C string;$Offset;32)
       $Offset:=64
       $NomDB:=BLOB to text($Blob;Mac C string;$Offset;32)
       $Pos:=Find in array(taNomMachine;$Host)
       If($Pos=-1)
          APPEND TO ARRAY(taHost;$PeerAddr)
          APPEND TO ARRAY(taNomMachine;$Host)
          APPEND TO ARRAY(taService;$Service)
          APPEND TO ARRAY(taNomDB;$NomDB)
       End if
    End if
 Until((Milliseconds>$Timeout)|($Err#0))
 $Err:=UDP_Delete($udpRef)



Voir aussi  

Routines de bas niveau, Présentation

 
PROPRIÉTÉS 

Produit : 4D
Thème : IC UDP

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D Internet Commands ( 4D v19)