函数参考


UDPRecv

从已经连接的套接字里面接收数据.

UDPRecv ( 套接字数组, 最大返回量[, 标志] )

参数

套接字数组 一个由 UDPBind 函数返回的套接字/数组.
最大返回量 定义返回是接收的最大字符数.
标志 [可选参数] 强制函数返回二进制数据需要设置为1(默认为 0, 并且会自动进行检测二进制/字符串数据).
强制函数返回来源IP/端口设置为 2. 返回结果为一个数组 : [0] 数据, [1] 来源 IP, [2] 来源端口.
如果您想两个标志一起,请设置为 3.

返回值

成功: 返回二进制/字符串的值(从已经连接的套接字里面接收). 如果标志为2或者3,返回一个数组.
失败: 返回空字符串 "" 并设置 @error.
Windows API WSAGetError 返回的值.(参考 MSDN)

注意/说明

由于向后兼容的原因,函数将试着返回一个字符串. 默认情况下.如果是空字符(0x00)返回,返回值将是二进制类型.
要强制函数总是返回二进位的数据(最好的选择),需要将参数 "标志" 设置为 1.

相关

BinaryLen, BinaryMid, UDPBind, UDPOpen

示例/演示


;;这是一个 UDP 服务器
;;请先运行服务端

; 开始 UDP 服务
;==============================================
UDPStartup()

; 注册清理函数.
OnAutoItExitRegister("Cleanup")

; 绑定到一个套接字(SOCKET)
;==============================================
Local $socket = UDPBind("127.0.0.1", 65532)
If @error <> 0 Then Exit

While 1
    Local $data = UDPRecv($socket, 50)
    If $data <> "" Then
        MsgBox(4096, "UDP 数据", $data, 1)
    EndIf
    Sleep(100)
WEnd

Func Cleanup()
    UDPCloseSocket($socket)
    UDPShutdown()
EndFunc   ;==>Cleanup