EthernetUDP.available()
描述
回传目前收到的封包所包含的资料量,这些资料都是目前可以读取的。要使用 available()
前必须先呼叫 UDP.parsePacket()
,否则 available()
的呼叫会失败。
available()
是从 Stream
继承而来。
语法
Udp.available()
参数
无参数
回传
int
:目前可以读取的资料量,以位元组为单位
范例
#include <Ethernet.h> #include <EthernetUdp.h> // 输入本地端的 IP 位址 IPAddress ip(192, 168, 1, 177); // 要监听的本地端埠编号 unsigned int localPort = 8888; // 创建一个 EthernetUDP 物件,我们可以藉由这个物件收发 UDP 的封包 EthernetUDP Udp; // 要拿来存放资料的阵列 char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; void setup() { // 开始 Ethernet 和 EthernetUDP Ethernet.begin(NULL,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()); // 读取透过 UDP 接收到的资料并且放到 packetBuffer Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); Serial.println("Contents:"); Serial.println(packetBuffer); } }
See Also
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.