查看: 3308|回复: 2

[求助] 广播包的接受问题

[复制链接]

该用户从未签到

5

主题

12

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
发表于 2012-8-2 09:52:56 | 显示全部楼层 |阅读模式
 各位好,我最近遇到这样的问题,做的设备收不到广播包,是不是广播包要有什么设置呀?
谢谢!
我的代码如下: 程序到recvfrom 就阻塞不往下跑了, 但是能够ping通对方。对方发广播包我却接受不到,
求各位高手解决,谢谢!
 
void enet_init(void)/*绑定ip到以太网接口*/
{
    int_32 error;
    _enet_address mac_address;
    _ip_address ip_address2 = ENET_IPADDR;
    /*创建协议栈*/
    error = RTCS_create();
 /*获取默认的MAC地址*/
    error = ENET_get_mac_address(DEMOCFG_DEFAULT_DEVICE, ip_address2, mac_address);
/*初始化以太网控制器接口,并且配置MAC地址*/
    error = ENET_initialize(DEMOCFG_DEFAULT_DEVICE, mac_address, 0, &ehandle);
 /*将协议栈和以太网控制器接口绑定到一起*/
    error = RTCS_if_add(ehandle, RTCS_IF_ENET, &ihandle);
  /*配置协议栈的IP地址和子网掩码*/
    error = RTCS_if_bind(ihandle, ip_address2, ENET_IPMASK);
}
之后是绑定套接字:
 
void EthernetInit(void)
{
   int error;
 sockaddr_in local_addr;
    /* Bind to UDP port */
    local_addr.sin_family = AF_INET;
    local_addr.sin_port = 7889;
    local_addr.sin_addr.s_addr = INADDR_ANY;
    sock = socket(PF_INET, SOCK_DGRAM, 0);
    if (sock == RTCS_SOCKET_ERROR)
    {
        printf("failed to create socket !\n");
    }
    error = bind(sock, &local_addr, sizeof(local_addr));
    if (error != RTCS_OK)
    {
        printf("\nFailed to bind datagram \n");
    }
}
 
void recvdata(void)/*接收函数*/
{
    unsigned short rlen;
    int length;
    sockaddr_in raddr;
    //uint_32 sock;
    _time_delay(1000);
    for (;; )
    {
        memset(&raddr, 0, sizeof(raddr));
        rlen = sizeof(raddr);
        length = recvfrom(sock, NULL, 0, 0, &raddr, &rlen);
        if (length == RTCS_ERROR)
        {
            printf("\nError %x receiving from %d.%d.%d.%d,%d",
                RTCS_geterror(sock),
                (raddr.sin_addr.s_addr >> 24) & 0xFF,
                (raddr.sin_addr.s_addr >> 16) & 0xFF,
                (raddr.sin_addr.s_addr >> 8) & 0xFF,
                raddr.sin_addr.s_addr & 0xFF,
                raddr.sin_port);
        }
        else
        {
            printf("\nsocket5 is %d\n", length);
        }
        _time_delay(20);
    }
}
 
 已经解决,原因要在user_config.h设置接收广播。论坛人气低呀,没有人回答。好在都自己解决了。
 
 
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-8-2 15:39:02 | 显示全部楼层

    RE:广播包的接受问题

    主要是搞MQX比较少,我对MQX也不是很深入,所以未能帮助您,还望见谅。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    12

    帖子

    0

    新手上路

    Rank: 1

    积分
    42
    最后登录
    1970-1-1
     楼主| 发表于 2012-8-2 16:26:34 | 显示全部楼层

    回复:广播包的接受问题

    回复第 2 楼 于2012-08-02 15:39:02发表:
    主要是搞MQX比较少,我对MQX也不是很深入,所以未能帮助您,还望见谅。
    太客气了,呵呵 有问题还是有些着急,就想早些解决。不过看看文档什么还是很有帮助。
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 14:49 , Processed in 0.085796 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表