OpenEdv-开源电子网

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

急急急,关于UDP接受数据的问题,求助原子哥

[复制链接]

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
发表于 2017-7-19 08:45:07 | 显示全部楼层 |阅读模式
10金钱
电脑软件是一个IP,F4里面设置两个两个IP,现在要从电脑传输数据给F4(UDP模式),电脑只能给F4的一份IP传输4个端口的数据,现在要8个端口的数据,所以要在F4上设置两个IP。也就是说F4要在短时间内接受8个数据包,4个数据包属于一个IP。但是数据发下来时候8个包的数据顺序的乱的,所以在接收数据时候,在F4里面用一个IP要接受两个IP的数据包?或者说采用别的方式之类的,这个弄了好几天没头绪,感觉不太可能,主管说让我想办法做出来,原子哥求助UPUPUPUP,急急急,实在没辙了?

最佳答案

查看完整内容[请看2#楼]

lwip是支持多个网卡的,如果你开两个进程,那么每个进程都需要绑定自己的网卡。 使用ip_addr_any就是绑定默认的网卡,多网卡时只需指定一个网卡作为默认就好
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2017-7-19 08:45:08 | 显示全部楼层
xp1179926265 发表于 2017-7-19 10:10
我只在F4里面设置了一个网卡,改他的本地IP来使用,网卡程序里不是要绑定默认网卡吗?我以为网卡是同时只 ...

lwip是支持多个网卡的,如果你开两个进程,那么每个进程都需要绑定自己的网卡。
使用ip_addr_any就是绑定默认的网卡,多网卡时只需指定一个网卡作为默认就好
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 08:46:06 | 显示全部楼层
自己顶
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 08:46:18 | 显示全部楼层
自己顶,别沉
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 08:46:32 | 显示全部楼层
自己顶,别沉,求助啊
回复

使用道具 举报

18

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
560
金钱
560
注册时间
2014-10-29
在线时间
228 小时
发表于 2017-7-19 09:05:03 | 显示全部楼层
帮顶,学习下,你们是NETCONN编程接口下的吗?
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2017-7-19 09:27:43 | 显示全部楼层
设置两个网卡不行吗
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 10:10:32 | 显示全部楼层

我只在F4里面设置了一个网卡,改他的本地IP来使用,网卡程序里不是要绑定默认网卡吗?我以为网卡是同时只能用一个,用下一个时候要绑定另外一个网卡?这个地方移植没弄懂,还有
udp—bind函数里的第二个参数我设置了固定的,如果用IP_ADDR_ANY是什么效果?这个也没弄懂,你懂的话麻烦给我解释一下,求助求助
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 10:15:17 | 显示全部楼层
persevere 发表于 2017-7-19 09:05
帮顶,学习下,你们是NETCONN编程接口下的吗?

RAW下的
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-19 16:06:13 | 显示全部楼层
hi我歌月徘徊 发表于 2017-7-19 08:45
lwip是支持多个网卡的,如果你开两个进程,那么每个进程都需要绑定自己的网卡。
使用ip_addr_any就是绑 ...

是设置一个UDP块,然后将这个UDP块的参数设置为ip_addr_any,然后设置两个网卡(每个网卡一个本地的IP)其中一个绑定为默认网卡,然后用网卡打开函数void netif_set_up(struct netif *netif)吧两个网卡都打开,使用中咋感觉只能用打开的最后一个网卡,LWIP是这种机制吗?同时打开多个网卡,只能用一个吗?
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2017-7-19 18:25:19 | 显示全部楼层
xp1179926265 发表于 2017-7-19 16:06
是设置一个UDP块,然后将这个UDP块的参数设置为ip_addr_any,然后设置两个网卡(每个网卡一个本地的IP) ...

我是基于os的,初始化的时候都是按照netif_add,netif_set_up来做,两个网卡就做两次,设置其中一个网卡为默认就好。然后我开两个任务,比如都作为服务器,bind各自网卡的ip和端口,然后listen。在raw接口下,你可以先把两个网卡初始化完成,先做到可以ping通
回复

使用道具 举报

91

主题

186

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2016-3-22
在线时间
122 小时
 楼主| 发表于 2017-7-20 08:48:02 | 显示全部楼层
hi我歌月徘徊 发表于 2017-7-19 18:25
我是基于os的,初始化的时候都是按照netif_add,netif_set_up来做,两个网卡就做两次,设置其中一个网卡 ...

ping是通的,调好了,bind函数是给UDP快绑定一个本地端口和一个IP的,设置两个UDP快吗?我只用了一个UDP快,两个网卡
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-3 03:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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