参数还要包括IP地址子网掩码
时间: 2023-10-11 16:06:47 浏览: 104
利用子网掩码进行子网划分.doc
好的,如果你需要保存 IP 地址和子网掩码等更多的网络参数,你可以将结构体修改如下:
```c
struct WifiTcpParams {
char ssid[32]; // WiFi SSID
char password[64]; // WiFi 密码
char server[64]; // TCP 服务器地址
int port; // TCP 服务器端口
IPAddress local_ip; // 本地 IP 地址
IPAddress gateway; // 网关
IPAddress subnet; // 子网掩码
};
```
然后,你需要在连接 WiFi 之前,将这些参数设置到 WiFi 对象中。例如:
```c
void setup() {
// 初始化 NVS
prefs.begin("my-app", false);
// 读取参数
loadParams();
// 连接 WiFi
WiFi.config(params.local_ip, params.gateway, params.subnet);
WiFi.begin(params.ssid, params.password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
// 连接 TCP 服务器
WiFiClient client;
while (!client.connect(params.server, params.port)) {
delay(1000);
}
}
```
这样,你就可以在连接 WiFi 时,使用保存的本地 IP 地址、网关和子网掩码等参数。需要注意的是,在保存这些参数之前,你需要先获取它们的值,例如通过 WiFi.localIP()、WiFi.gatewayIP() 和 WiFi.subnetMask() 等函数。而在读取这些参数之后,你需要将它们转换为 IPAddress 类型,例如通过 IPAddress(local_ip_string) 的方式。
总之,你可以根据需要修改结构体和程序逻辑,以实现更灵活、更完整的网络参数保存方案。
阅读全文