esp32端的端口也要指定
时间: 2023-08-16 12:06:41 浏览: 94
是的,客户端连接服务器时,需要指定客户端的本地端口号。可以使用 WiFiClient 类的 connect() 函数的第二个参数来指定本地端口号。下面是修改后的示例代码:
```c++
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* host = "your_HOST";
const int port = 1234; // 服务器端口号
const int localPort = 1234; // 客户端本地端口号
void setup() {
Serial.begin(9600);
delay(10);
// 连接 Wi-Fi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// 连接 TCP 服务器
WiFiClient client;
if (!client.connect(host, port, localPort)) {
Serial.println("Connection failed");
return;
}
// 发送数据
client.print("Hello, server!");
// 读取响应
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
// 断开连接
client.stop();
Serial.println("Done");
}
void loop() {
}
```
在上面的代码中,将 localPort 设置为客户端的本地端口号,然后将其传递给 connect() 函数的第三个参数。这样就可以指定客户端的本地端口号了。
阅读全文