SOCKS5 代理支持
概述
SOCKS 库实现了 SOCKS5 支持,允许 Zephyr 通过网络代理连接到对端设备。
有关 SOCKS5 工作原理的详细介绍,请参见 SOCKS5 维基百科条目。
有关协议本身的更多信息,请参见 RFC 1928。
SOCKS5 API
SOCKS5 支持通过 CONFIG_SOCKS Kconfig 选项启用。希望使用 SOCKS5 的应用必须调用 setsockopt() 设置 SOCKS5 代理主机地址,如下所示:
static int set_proxy(int sock, const struct sockaddr *proxy_addr,
socklen_t proxy_addrlen)
{
int ret;
ret = setsockopt(sock, SOL_SOCKET, SO_SOCKS5,
proxy_addr, proxy_addrlen);
if (ret < 0) {
return -errno;
}
return 0;
}
在 MQTT 中使用 SOCKS5 代理
对于 MQTT 客户端,可以使用 mqtt_client_set_proxy() API 来设置 SOCKS5 代理。用法示例请参见 MQTT publisher 示例应用。