OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2894|回复: 2

关于uip的udp服务器回传数据

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-3-29
在线时间
1 小时
发表于 2016-3-29 17:00:48 | 显示全部楼层 |阅读模式
1金钱
我在myudp_init()做udp初始化,如下
void myudp_init(void)
{
uip_ipaddr_t  ipaddr;
uip_ipaddr(ipaddr,192,168,1,10);

if(myudp_conn!=NULL)
{
  uip_udp_remove(myudp_conn);
}

myudp_conn=uip_udp_new(&ipaddr,HTONS(1000));

if(myudp_conn!=NULL)
{
  uip_udp_bind(myudp_conn,HTONS(2000));
}
}
我看uip资料上说,uip_udp_conns[]数组保持所有udp连接。uip_udp_new()函数将远端IP,远端端口写入uip_udp_conns[]数组中某一位置,并返回它的地址。我看了uip_udp_new()函数,没看出来它将新建立的连接写入uip_udp_conns[]数组啊,哪位指点一下。

在uip_process()函数中udp_input:部分,如下遍历udp连接时,我的代码始终无法进入for循环,我觉得是在uip_udp_new()时没有将新建连接写入uip_udp_conns[]数组。不知道是不是这样,在哪里把udp连接写入uip_udo\p_conns[]数组啊?
  for(uip_udp_conn = &uip_udp_conns[0];uip_udp_conn < &uip_udp_conns[UIP_UDP_CONNS];++uip_udp_conn)
{
    if(uip_udp_conn->lport != 0 &&
       UDPBUF->destport == uip_udp_conn->lport &&
       (uip_udp_conn->rport == 0 ||
        UDPBUF->srcport == uip_udp_conn->rport) &&
       (uip_ipaddr_cmp(uip_udp_conn->ripaddr, all_zeroes_addr) ||
uip_ipaddr_cmp(uip_udp_conn->ripaddr, all_ones_addr) ||
uip_ipaddr_cmp(BUF->srcipaddr, uip_udp_conn->ripaddr)))
  {
      goto udp_found;
    }
  }

先谢过了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-29 20:48:26 | 显示全部楼层
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-3-29
在线时间
1 小时
 楼主| 发表于 2016-3-31 09:33:56 | 显示全部楼层

谢谢原子哥。大家都没有遇到这个问题吗?是我在应用的时候把哪里搞错了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 11:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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