Function Reference

UDPRecv

開いているソケットからデータを受信します。

UDPRecv ( socketarray, maxlen [, flag] )

 

パラメータ

socketarray UDPBind関数によって返されるソケット/配列。
maxlen 受信する最大文字数
flag [オプション] 1を設定した場合、この関数はバイナリデータを返します(デフォルトは0でバイナリ/文字列を自動検知します)。
2に設定した場合、この関数は受信したIP/ポートを返します。結果は以下の配列として返されます : [0] データ、[1] 受信元IP、[2] 受信元ポート。
両方を設定したい場合は3を使用します。

 

返し値

成功 開いているソケットから送信されたバイナリ/文字列を返します。flagが2または3の場合は配列を返します。
失敗 ""を返し、@errorを設定します。
@error: 無効なsocketarrayの場合、-1、-2または-3。
WindowsAPIのWSAGetErrorの返し値 (MSDNを参照)。

 

注意

後方互換性のためにこの関数はデフォルトでは文字列を返そうとします。 NULL文字(0x00)を受信した場合、返し値はバイナリ型になります。
関数が常にバイナリデータを返すようにするには"flag"パラメータを1に設定してください(もっとも賢明な方法です)。

 

関連

UDPBind, UDPOpen, String

 


;;UDPサーバー
;;最初に実行

; UDPサービスを開始
;==============================================
UDPStartup()

; クリーンアップ関数を登録
OnAutoItExitRegister("Cleanup")

; ソケットにバインド
;==============================================
$socket = UDPBind("127.0.0.1", 65532)
If @error <> 0 Then Exit

While 1
    $data = UDPRecv($socket, 50)
    If $data <> "" Then
        MsgBox(0, "UDP DATA", $data, 1)
    EndIf
    sleep(100)
WEnd

Func Cleanup()
    UDPCloseSocket($socket)
    UDPShutdown()
EndFunc