这里会显示出您选择的修订版和当前版本之间的差别。
en:arduino:libraries:ethernetudpavailable [2016/12/25 22:15] |
en:arduino:libraries:ethernetudpavailable [2016/12/25 22:15] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | [[en:arduino:libraries:ethernet|Ethernet]] : UDP.available() | ||
+ | ====== UDP.available() ====== | ||
+ | |||
+ | ===== Description ===== | ||
+ | |||
+ | Get the number of bytes (characters) available for reading from the buffer. This is data that's already arrived. | ||
+ | |||
+ | This function can only be successfully called after UDP.parsePacket(). | ||
+ | |||
+ | available() inherits from the Stream utility class. | ||
+ | ===== Syntax ===== | ||
+ | |||
+ | UDP.available() | ||
+ | ===== Parameters ===== | ||
+ | |||
+ | None | ||
+ | ===== Returns ===== | ||
+ | |||
+ | the number of bytes available to read | ||
+ | ===== Example ===== | ||
+ | <code cpp> | ||
+ | #include <SPI.h> | ||
+ | #include <Ethernet.h> | ||
+ | #include <EthernetUdp.h> | ||
+ | |||
+ | // Enter a MAC address and IP address for your controller below. | ||
+ | // The IP address will be dependent on your local network: | ||
+ | byte mac[] = { | ||
+ | 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; | ||
+ | IPAddress ip(192, 168, 1, 177); | ||
+ | |||
+ | unsigned int localPort = 8888; // local port to listen on | ||
+ | |||
+ | // An EthernetUDP instance to let us send and receive packets over UDP | ||
+ | EthernetUDP Udp; | ||
+ | |||
+ | char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet, | ||
+ | |||
+ | void setup() { | ||
+ | // start the Ethernet and UDP: | ||
+ | Ethernet.begin(mac,ip); | ||
+ | Udp.begin(localPort); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | int packetSize = Udp.parsePacket(); | ||
+ | if(Udp.available()) | ||
+ | { | ||
+ | Serial.print("Received packet of size "); | ||
+ | Serial.println(packetSize); | ||
+ | Serial.print("From "); | ||
+ | IPAddress remote = Udp.remoteIP(); | ||
+ | for (int i =0; i < 4; i++) | ||
+ | { | ||
+ | Serial.print(remote[i], DEC); | ||
+ | if (i < 3) | ||
+ | { | ||
+ | Serial.print("."); | ||
+ | } | ||
+ | } | ||
+ | Serial.print(", port "); | ||
+ | Serial.println(Udp.remotePort()); | ||
+ | |||
+ | // read the packet into packetBufffer | ||
+ | Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); | ||
+ | Serial.println("Contents:"); | ||
+ | Serial.println(packetBuffer); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | [[en:arduino:libraries|Reference Home]] |