跳转至

DLLDiscoverControllers

函数 DLLDiscoverControllers 在指定 UDP 端口上发送广播,发现局域网内运行中的 One 控制器。(无句柄,进程全局广播。)

所属:C/C++ API 函数索引

C/C++

ErrorCode DLLDiscoverControllers(uint16_t port, char* outControllerIp, int* inOutIpSize, uint32_t timeoutMs);

C#

.NET SDK 无直接等效项;控制器发现与网络配置由 Setup Manager 应用完成(本 C API 保留供 C 客户使用)。

参数

port (uint16_t)

UDP 广播端口。建议使用 60049(与控制器默认命令端口一致)。

outControllerIp (char*)

输出。接收以 ip=<地址> 开头、后续为 key=value 行的字符串,以 \0 结尾。如果无控制器响应,字符串为空。

inOutIpSize (int*)

输入输出。调用时传入 outControllerIp 缓冲区容量(字符数);返回时写入实际写入的字符数,不含终止 \0

timeoutMs (uint32_t)

广播超时时间,单位毫秒。无控制器响应时返回 CallbackTimeout

返回值

返回 ErrorCodeNoError (0) 表示成功,CallbackTimeout 表示在超时时间内未收到响应,详见 SDK 发布头 ErrorCode.h。

说明

此函数无需客户端句柄,为进程全局调用。控制器响应的字符串格式示例: ip=192.168.1.100 name=OneController version=1.0.0

示例

char ip[64] = {0};
int len = sizeof(ip);
if (DLLDiscoverControllers(60049, ip, &len, 1000) == NoError)
    printf("Found controller: %s\n", ip);

相关函数