用户工具

站点工具


reference:library:ethernetudpavailable

Ethernet :UDP协议库

available()

描述

获取缓冲区存储的字节数。这是已经所接收的数据。

此函数只能在调用UDP.parsePacket() 后才能成功调用

available()继承Stream实用程序类。。

语法

UDP.available()

参数

返回

可读取的字节数

例子

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
 
//下面输入MAC地址和IP地址。
// 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(){
  //启动以太网和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());
    //读取数据包并放到缓存区
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println("Contents:");
    Serial.println(packetBuffer);
  }
}

返回主菜单

reference/library/ethernetudpavailable.txt · 最后更改: 2017/04/07 10:03 (外部编辑)