完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,请您确认一下这个数据包确定是您这个Socket,看您的Socket创建的函数,目的IP为4个255,广播模式,但是您抓的包是UDP单播
|
|
|
|
您好:
|
|
|
|
这个包是我发送的。这个包我是UDP,用sendto函数发送的,sendto函数是可以填目标地址的;
|
|
|
|
bool CH57xNET_CreatUdpSocket(void)
{ UINT8 DESIP[4] = {255,255,255,255}; /* 接收广播包,此地址不应更变 */ SOCK_INF TmpSocketInf; /* 创建临时socket变量 */ memset((void *)&TmpSocketInf,0,sizeof(SOCK_INF)); /* 库内部会将此变量复制,所以最好将临时变量先全部清零 */ memcpy((void *)TmpSocketInf.IPAddr,DESIP,4); /* 设置目的IP地址 */ TmpSocketInf.DesPort = 6666; /* 设置目的端口 */ TmpSocketInf.SourPort = 6666; /* 设置源端口 */ TmpSocketInf.ProtoType = PROTO_TYPE_UDP; /* 设置socekt类型 */ TmpSocketInf.AppCallBack = CH57xNET_UdpServerRecv; /* 接收回调函数 */ TmpSocketInf.RecvStartPoint = (UINT32)SocketRecvBuf; /* 设置接收缓冲区的接收缓冲区 */ TmpSocketInf.RecvBufLen = RECE_BUF_LEN ; /* 设置接收缓冲区的接收长度 */ // i = CH57xNET_SocketCreat(&SocketId,&TmpSocketInf); /* 创建socket,将返回的socket索引保存在SocketId中 */ // mStopIfError(i); /* 检查错误 */ if(CH57xNET_SocketCreat(&SocketId,&TmpSocketInf) == CH57xNET_ERR_SUCCESS) { return true; } else { return false; } } void net_send(UINT8 *buf, UINT32 *slen, UINT8 *sip, UINT16 port) { CH57xNET_SocketUdpSendTo(SocketId, buf, slen, sip, port); } uint8_t group_ip[4] = {239, 255, 0, 50}; net_send(send_buf, &send_len, group_ip, 6666); 这是实现的代码,麻烦帮忙测试一下,谢谢了。 |
|
|
|
只有小组成员才能发言,加入小组>>
531 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2907 浏览 2 评论
2402 浏览 1 评论
875浏览 2评论
692浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
423浏览 1评论
535浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
819浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 10:05 , Processed in 1.366082 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号