Network programming ESP32/8266-将WiFiClient绑定到端口

Network programming ESP32/8266-将WiFiClient绑定到端口,network-programming,esp8266,esp32,Network Programming,Esp8266,Esp32,使用Arduino framework和WiFi.h library,在与WiFiServer交换消息时是否可以将WiFiClient绑定到端口 我已经能够在客户端和服务器之间建立连接。但是,我无法将客户端绑定到某个端口。服务器有一个固定的IP+端口(显然),但客户端只保留IP。每次与服务器建立新连接时,端口似乎都会随机更改 (部分)Client.cpp (在ESP32上运行) #包括 #包括 /* ... */ 无线客户端; while(hasStuffToSend){ 连接(服务器IP、服

使用Arduino framework和WiFi.h library,在与WiFiServer交换消息时是否可以将WiFiClient绑定到端口

我已经能够在客户端和服务器之间建立连接。但是,我无法将客户端绑定到某个端口。服务器有一个固定的IP+端口(显然),但客户端只保留IP。每次与服务器建立新连接时,端口似乎都会随机更改


(部分)Client.cpp (在ESP32上运行)

#包括
#包括
/* ... */
无线客户端;
while(hasStuffToSend){
连接(服务器IP、服务器端口);
/*发送消息*/
/*接收响应*/
client.stop()
}
/* ... */
在我完成所有打算进行的交换之前,唯一保持连接的方法是(在while循环之前只调用一次connect(),在while循环之后只调用一次stop())吗?即使这样做,是否有办法定义第一个端口是什么


非常感谢您的帮助。

每次新的TCP连接都会改变源端口。这就是TCP的工作方式。连接由源和目标IP地址以及端口号唯一指定。在您关闭一个连接并打开一个新的连接后,它是一个不同的连接。您不能重新打开TCP连接。为什么您认为需要保留相同的源端口?
#include <Arduino.h>
#include <WiFi.h>

/* ... */
WiFiClient client;
while(hasStuffToSend) {
    client.connect(SERVER_IP,SERVER_PORT);
    /* Sending message */
    /* Receiving response */
    client.stop()
}
/* ... */