■server.write関数
Serverクラス※1のserver.write関数は、サーバーに接続されているすべてのクライアントにデータを書き込みます。
このデータは1バイトまたは一連のバイトとして送信されます。
■使用例
Arduino IDEで使用するserver.write関数の使い方は以下の通りです。
例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
次に下記プログラムを実行すると、イーサネットデバイスを初期化し、クライアントのリスニングを開始します。
受信クライアントが接続していると確認した場合は、受信クライアントからバイトを読み込み、server.write関数によりサーバーに接続されているすべてのクライアントにこれを送信します。
#include <Ethernet.h> #include <SPI.h> // シールドのメディアアクセス制御(イーサネットハードウェア)アドレス byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //シールドのIPアドレス byte ip[] = { 10, 0, 0, 177 }; // ルータのゲートウェイアドレス byte gateway[] = { 10, 0, 0, 1 }; // サブネット byte subnet[] = { 255, 255, 0, 0 }; // telnetはデフォルトでポート23になります EthernetServer server = EthernetServer(23); void setup() { // イーサネットデバイスを初期化する Ethernet.begin(mac, ip, gateway, subnet); // クライアントのリスニングを開始する server.begin(); } void loop() { // 受信クライアントが接続している場合は、読み込み可能なバイト数があります。 EthernetClient client = server.available(); if (client) { // 受信クライアントからバイトを読み込んで書き戻します // サーバーに接続されているすべてのクライアントに送信します。 server.write(client.read()); } }
図1:プログラム例
■構文
server.write(val)
server.write(buf, len)
■パラメータ
val:1バイト(byteまたはchar)として送信する値。
buf:一連のバイトとして送信する配列(byteまたはchar)
len:バッファの長さ
■戻り値
バイト(byte)
write関数は、書き込まれたバイト数を返します。これを読む必要はありません。
励みになりますのでよければクリック下さい(^o^)/