我正在使用ESP8266 as a wifi server
绘制草图,我需要向客户端发送一个字符串,为此,我正在使用这段代码:
char sbuf[] = "Hello world!\n\r";
size_t len = sizeof(sbuf);
for (i = 0; i < MAXCLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
serverClients[i].write((char*) &sbuf, len);
delay(1);
}
}
It works OK
,客户端可以接收字符
但是现在我想在需要时调用make a function
,这是功能代码:
void sendDataToClient( char sbuf[]) {
size_t len = sizeof(sbuf);
for (i = 0; i < MAXCLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
serverClients[i].write((char*) &sbuf, len);
delay(1);
}
}
}
这就是我打电话给的function
:
char bufferMSGtoClient[] = "Hello world!\n\r";
sendDataToClient(bufferMSGtoClient)
但是它不起作用,我不理解length is 4
的值,并且客户没有收到任何东西,有人可以告诉我我的error
是什么?
sizeof并没有您认为的那样。您得到4,因为那是指针的大小。请改用strlen。它会告诉您\ n多长时间。如果您也想要\ r,请添加两个。