这里会显示出您选择的修订版和当前版本之间的差别。
— | reference:library:ethernetudpread [2023/06/07 04:24] (当前版本) – 创建 - 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | [[zh: | ||
+ | ====== UDP.read() ====== | ||
+ | ===== 描述 ===== | ||
+ | |||
+ | 从指定的缓冲区中读取的UDP数据。如果没有给出参数,它会返回缓冲区中的下一个字符。 | ||
+ | |||
+ | 此函数只能调用在成功调用 UDP.parsePacket()之后。 | ||
+ | ===== 语法 ===== | ||
+ | |||
+ | UDP.read(); | ||
+ | \\ UDP.read(packetBuffer, | ||
+ | ===== 参数 ===== | ||
+ | |||
+ | packetBuffer:用以接收包的缓冲区(char) | ||
+ | \\ MAXSIZE:缓冲区的最大容量(int) | ||
+ | ===== 返回 ===== | ||
+ | |||
+ | 字符(char):返回缓冲区的字符 | ||
+ | ===== 例子 ===== | ||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | // | ||
+ | // IP地址将依赖于你的本地网络 | ||
+ | byte mac[] = { | ||
+ | 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; | ||
+ | IPAddress ip(192, 168, 1, 177); | ||
+ | unsigned int localPort = 8888; // | ||
+ | |||
+ | // EthernetUDP的实例,让我们通过UDP发送和接收数据包 | ||
+ | EthernetUDP UDP; | ||
+ | |||
+ | char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; | ||
+ | |||
+ | void setup() { | ||
+ | // | ||
+ | Ethernet.begin(mac, | ||
+ | Udp.begin(localPort); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | int packetSize = Udp.parsePacket(); | ||
+ | if(packetSize) | ||
+ | { | ||
+ | Serial.print(" | ||
+ | Serial.println(packetSize); | ||
+ | Serial.print(" | ||
+ | IPAddress remote = Udp.remoteIP(); | ||
+ | for (int i =0; i < 4; i++) | ||
+ | { | ||
+ | Serial.print(remote[i], | ||
+ | if (i < 3) | ||
+ | { | ||
+ | Serial.print(" | ||
+ | } | ||
+ | } | ||
+ | Serial.print(", | ||
+ | Serial.println(Udp.remotePort()); | ||
+ | |||
+ | // | ||
+ | Udp.read(packetBuffer, | ||
+ | Serial.println(" | ||
+ | Serial.println(packetBuffer); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | [[zh: |