//%attributes = {}
/*

UDPパケットを受信し続ける

*/

#DECLARE($process : Integer; $window : Integer; $list : Collection; $udpID : Integer)

var $Blob : Blob

//ループし続けてUDPパケットを受け取る

While (Storage:C1525.udp.is_contimnue)  //ループ処理フラグをチェック
	
	DELAY PROCESS:C323(Current process:C322; 6)  //... in ticks
	
	SET BLOB SIZE:C606($Blob; 0; 0)
	$Err:=UDP_ReceiveBLOBFrom($udpID; $PeerAddr; $Port; $Blob)
	
	If (BLOB size:C605($Blob)>0)
		
		$Offset:=0
		$Host:=BLOB to text:C555($Blob; Mac C string:K22:7; $Offset; 32)
		$Offset:=32
		$Service:=BLOB to text:C555($Blob; Mac C string:K22:7; $Offset; 32)
		$Offset:=64
		$DBName:=BLOB to text:C555($Blob; Mac C string:K22:7; $Offset; 32)
		
		//リストに追加
		//If ($list.query("machine = :1"; $Host).length=0)  //リストに登録されていないかをチェック
		Use ($list)
			$list.push(New shared object:C1526("host"; $PeerAddr; "machine"; $Host; "service"; $Service; "name"; $DBName))  //追加
		End use 
		POST OUTSIDE CALL:C329($process)  //追加を知らせる
		//End if 
		
	End if 
End while 
