version 11
UDP (User Datagram Protocol) は実装が簡単なデータ送信プロトコルです。TCPに比べ高速でシンプルです (TCPヘッダが最低20倍とヘッダに必要なのに対し、UDPは8バイトです) が、信頼性は提供されません。このプロトコルはデータが素早く送信先に到達することが重要なアプリケーションで使用できます。このプロトコルはデータ転送検証やエラーチェック、送信されなかったデータの復元ができません。
例題
この例題は、UDPコマンドを使用して、ローカルネットワークで実行されている4D Serverのリストを取得する方法を示しています:
ARRAY STRING(255;asHost;0) ARRAY STRING(32;asMachineName;0) ARRAY STRING(32;asService;0) ARRAY STRING(32;asDBName;0) C_BLOB($Blob) $Addr:="255.255.255.255" $Port:=19813 $Offset:=32 SET BLOB SIZE($Blob;96;0) TEXT TO BLOB("4D Server";$Blob;Text without length;$Offset) $Err:=UDP_New(0;$udpID) $Err:=UDP_SendBLobTo($udpID;$Addr;$Port;$Blob) $Secs:=2 $Timeout:=Milliseconds+($Secs*1000) Repeat DELAY PROCESS(Current process;6) `... in ticks SET BLOB SIZE($Blob;0;0) $PeerAddr:=$Addr $Err:=UDP_ReceiveBlobFrom($udpID;$PeerAddr;$Port;$Blob) If(BLOB size($Blob)>0) $Offset:=0 $Host:=BLOB to text($Blob;C string;$Offset;32) $Offset:=32 $Service:=BLOB to text($Blob;C string;$Offset;32) $Offset:=64 $DBName:=BLOB to text($Blob, C string;$Offset;32) $Pos:=Find in array(asMachineName;$Host) If($Pos>0) APPEND TO ARRAY(asHost;$PeerAddr) APPEND TO ARRAY(asMachineName;$Host) APPEND TO ARRAY(asService;$Service) APPEND TO ARRAY(asDBName;$DBName) End if End if Until((Milliseconds>$Timeout) | ($Err#0)) $Err:=UDP_Delete($udpID)
参照