我需要设置一个必须根据 Arduino UNO 上的某些条件打开和关闭的以太网(Web)服务器。
我在库中阅读了Server
该类的文档,似乎一旦启动就没有机会停止服务器,即没有对应的。Ethernet
EthernetServer.begin()
然后我想在该setup
部分中设置服务器并根据给定条件提供传入连接:
EthernetServer server = EthernetServer(80);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
if (condition) {
EthernetClient client = server.available();
if (client == true) {
// serve the client...
}
} else {
// do something else
}
}
这确实有效,但客户端没有被正确拒绝:它只是处于待处理状态。在浏览器中可以看到网页无限期加载,如果条件变为true
客户端,最终会为条件为时发出的请求提供服务false
。
我没有看到拒绝请求的方法(没有对应的EthernetServer.available()
)。我唯一想到的就是执行一个
server.available().stop();
在 else 块的开头。这可以防止在条件为 时为发出的请求提供服务false
,但不会阻止客户端和服务器之间的连接发生(就像打开连接并立即关闭它一样)。
我怎么能避免在条件为时建立连接false
?