完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本人在使用ESP32做UDP通讯时,不知道怎么发送广播包,请问应该如何发送广播包呢。如下代码,UDP client通信,当ip地址为192.168.1.220时,能够发送出去,但换成
clieAddrUDP.sin_addr.s_addr = inet_addr("255.255.255.255");时,无法成功发送。表现为函数直行发送成功,但使用抓包工具无法抓到该数据包,请问一下该如何操作,有没有相关例程呢? #define SERVER_PORT 10001 #define MAX_BUF_SIZE 1024 static socklen_t len=0; void UdpClientTask(void *p_arg) { int rtnValue; int clifdUDP; struct sockaddr_in clieAddrUDP; char buffer[MAX_BUF_SIZE]="udp client testrn"; clifdUDP = socket(AF_INET,SOCK_DGRAM,0); if( clifdUDP<0 ){ printf("udp client errrn"); }else{ printf("udp client okrn"); } /* 填充服务端的资料 */ clieAddrUDP.sin_family=AF_INET; clieAddrUDP.sin_port=htons(SERVER_PORT); //clieAddrUDP.sin_addr.s_addr = htonl(IPADDR_BROADCAST); //clieAddrUDP.sin_addr.s_addr = inet_addr("255.255.255.255"); clieAddrUDP.sin_addr.s_addr = inet_addr("192.168.1.220"); //clieAddrUDP.sin_addr.s_addr = inet_addr("192.168.1.70"); memset(&(clieAddrUDP.sin_zero), 0, sizeof(clieAddrUDP.sin_zero)); len = sizeof(clieAddrUDP); while(1){ printf("udp clientrn"); WaitSignal(); rtnValue = sendto(clifdUDP,buffer,strlen(buffer),0,(struct sockaddr *)&clieAddrUDP,len); printf("udp client = %drn",rtnValue); vTaskDelay(1000); } } xTaskHandle gUdpClientHandle; void udpClientTaskCreate(void) { xTaskCreate(&UdpClientTask, "UdpClientTask", 4096, NULL, 12, &gUdpClientHandle); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3285 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3938 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3444 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4008 浏览 1 评论
20683 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
804浏览 2评论
1024浏览 2评论
1027浏览 1评论
1143浏览 1评论
381浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:28 , Processed in 0.769504 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号