我需要設置一個以太網(網絡)服務器,必須根據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