我需要设置一个以太网(网络)服务器,必须根据Arduino UNO上的某些条件打开和关闭。Arduino:打开和关闭以太网服务器可用性
我在Ethernet
library上看到Server
类的文档,看起来一旦开始就没有机会停止服务器,即没有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()
)。我唯一想到的就是在else块的开头执行
server.available().stop();
。这样可以防止为条件为false
时发出的请求提供服务,但不会阻止客户端和服务器之间的连接发生(就像打开连接并立即关闭连接一样)。
如何避免在条件为false
时建立连接?
使用看门狗自复位? – 2012-10-29 10:15:06