ESP8266 使用UDP通信协议

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
//udp包最大字节数
#define MAX_PACKETSIZE 1000
WiFiUDP udp;
const char* ssid = "";
const char* password = "";
//udp包缓冲区
char buffUDP[MAX_PACKETSIZE];

void startUDPServer(int port)
{
	Serial.print("
StartUDPServer at port:");
	Serial.println(port);
	udp.begin(port);
}
void sendUDP(char *p)
{
	udp.beginPacket(udp.remoteIP(), udp.remotePort());
	udp.write(p);
	udp.endPacket();
}
void doUdpServerTick()
{
	int packetSize = udp.parsePacket();
	if(packetSize)
	{
		Serial.print("Received packet of size ");
		Serial.println(packetSize);
		Serial.print("From ");
		IPAddress remote = udp.remoteIP();
		for (int i = 0; i < 4; i++) {//允许做多4个UDP客户端连接
			Serial.print(remote[i], DEC);
			if (i < 3) Serial.print(".");
		}
		Serial.print(", port ");
		Serial.println(udp.remotePort());
		memset(buffUDP,0x00,sizeof(buffUDP));
		udp.read(buffUDP, MAX_PACKETSIZE-1);
		udp.flush();
		Serial.println("Recieve:");
		Serial.println(buffUDP);
		sendUDP(buffUDP);//send back
	}
}

void setup() {
	Serial.begin(115200);
	Serial.print("Connecting to ");
	Serial.println(ssid);
	WiFi.begin(ssid, password);
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	Serial.println("");
	Serial.println("WiFi connected");
	Serial.println("IP address: ");
	Serial.println(WiFi.localIP());
	startUDPServer(80);
}

void loop() {
	doUdpServerTick();
}
			
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值