開いているソケットからデータを受信します。
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)を受信した場合、返し値はバイナリ型になります。
関連
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