arduino - WiFiClient.Read() 为每个发送的字符返回 1
问题描述
我正在尝试使用 TCP 将数据发送到 ESP32。该程序是用 arduino IDE 编写的。为了发送数据,我使用了一个名为 Packet Sender 的应用程序。该程序应将数据打印到串行并返回到 WiFiCLient。
每当我向 ESP32 发送数据时,它会为每个发送的字节打印“1”。“已接收数据”消息已正确发送。
我正在使用此代码
#include <WiFi.h>
const uint ServerPort = 23;
WiFiServer Server(ServerPort);
WiFiClient RemoteClient;
const char *SSID = "SSID";
const char *WiFiPassword = "Password";
void ConnectToWifi()
{
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, WiFiPassword);
Serial.print("Connecting to "); Serial.println(SSID);
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED)
{
Serial.print('.');
delay(500);
if ((++i % 16) == 0)
{
Serial.println(F(" still trying to connect"));
}
}
Serial.print(F("Connected. My IP address is: "));
Serial.println(WiFi.localIP());
}
void CheckForConnections()
{
if (Server.hasClient())
{
Serial.println("Client spoted");
if (RemoteClient.connected())
{
Serial.println("Connection rejected");
Server.available().stop();
}
else
{
Serial.println("Connection accepted");
RemoteClient = Server.available();
}
}
}
void setup() {
Serial.begin(9600);
ConnectToWifi();
Server.begin();
}
void loop() {
// RemoteClient = Server.available();
CheckForConnections();
if(RemoteClient)
{
uint8_t ch;
bool newDataReceived = false;
while(ch = RemoteClient.read() != -1 ){
Serial.print(ch);
RemoteClient.write(ch);
newDataReceived = true;
}
if(newDataReceived){
Serial.println();
RemoteClient.print("Received data");
}
}
}
感谢您的回答,雅库布
解决方案
while (ch = RemoteClient.read() != -1 )
编译器将其解释为:
ch = (RemoteClient.read() != -1)
右侧部分评估为 TRUE 或 FALSE,即。1 或 0。TRUE 的 1 是您看到的打印内容。
因此,添加括号以使其执行您想要的操作:
(ch = (RemoteClient.read()) != -1)
推荐阅读
- opencv - 设置 OpenCV CUDA 时遇到问题
- google-bigquery - 如果使用命令行或 sql 在大查询中不存在表,如何创建表
- c# - 使用 lambda 异步处理异常,未捕获异常
- r - 前两个 (.dots) 之间的字符串
- python-3.x - Pandas 中的错误以秒为单位计算时差
- php - Yii2:如何在简单的 find() 响应中进行数学加法?
- android - 水平 RecyclerView 使用 wrap_content 跟随第一项高度
- java - kafka AdminClient API Timed out waiting for node assignment
- c# - 如何在不同的类中使用 Monogame GraphicsDeviceManager?
- javascript - cant work out the JS solution