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
}
}
これは確かに機能しますが、クライアントは適切に拒否されません。保留状態のままになります。ブラウザでは、Webページが確実に読み込まれていることを確認できます。条件が変わったtrue
場合、条件がであったときに発行されたリクエストに対して、最終的にクライアントにサービスが提供されfalse
ます。
リクエストを拒否するメソッドが表示されません(に対応するメソッドはありませんEthernetServer.available()
)。私の頭に浮かぶ唯一のことは、
server.available().stop();
elseブロックの先頭にあります。これにより、条件が設定されている間に発行された要求を処理できなくなりますfalse
が、クライアントとサーバー間の接続が確立されるのを防ぐことはできません(接続を開いてすぐにシャットダウンするようなものです)。
状態が状態のときに接続を確立しないようにするにはどうすればよいfalse
ですか?