4D Internet Commands v16

UDPコマンド - 概要

ホーム

 
4D Internet Commands v16
UDPコマンド - 概要

UDPコマンド - 概要  


 

 

UDP (User Datagram Protocol) は実装が簡単なデータ送信プロトコルです。TCPに比べ高速でシンプルです (TCPの場合最低20バイトがヘッダに必要なのに対し、UDPは8バイトです) が、信頼性は提供されません。このプロトコルはデータが素早く送信先に到達することが重要なアプリケーションで使用できます。このプロトコルはデータ転送 検証やエラーチェック、送信されなかったデータの復元ができません。

例題  

この例題は、UDPコマンドを使用してローカルネットワークで実行されている4D Serverのリストを取得する方法を示しています:

 ARRAY TEXT(asHost;0)
 ARRAY TEXT(asMachineName;0)
 ARRAY TEXT(asService;0)
 ARRAY TEXT(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 II";$Blob;Mac text without length;$Offset)
 
 $Err:=UDP_New(0;$udpID)
 $Err:=UDP_SendBLOBTo($udpID;$Addr;$Port;$Blob)
 $Secs:=5
 $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;Mac C string;$Offset;32)
       $Offset:=32
       $Service:=BLOB to text($Blob;Mac C string;$Offset;32)
       $Offset:=64
       $DBName:=BLOB to text($Blob;Mac C string;$Offset;32)
       $Pos:=Find in array(asMachineName;$Host)
       If($Pos=-1)
          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)



参照 

低レベルルーチン - 概要

 
プロパティ 

プロダクト: 4D Internet Commands
テーマ: IC UDP

 
履歴 

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v16)