初级会员
- 积分
- 105
- 金钱
- 105
- 注册时间
- 2017-8-4
- 在线时间
- 48 小时
|
10金钱
本帖最后由 守望者2481632 于 2020-8-31 15:10 编辑
项目开发需求,用的是stm32f107,软件采用的 lwip+freertos 的架构。
下位机作为 udp 服务端,上位机作为 udp 客户端,用的是 netconn 进行网络编程。
正点原子的例程上创建 udp 连接的步骤是:
1.udpconn = netconn_new(NETCONN_UDP); 创建udp连接对象
2.netconn_bind(udpconn,IP_ADDR_ANY,UDP_DEMO_PORT); 绑定本地 ip 和端口
3.netconn_connect(udpconn,&destipaddr,UDP_DEMO_PORT); 连接到远程主机(绑定远端ip和端口)
这样确实可以实现udp通信,但前提是必须要知道远程主机的 ip 和端口,下位机作为服务端应该可以和同网段的任意 ip 通信才对,
绑定了远程主机的 ip 和端口后,就只能和固定的 ip 地址通信。
如何能在不知道远程主机的 ip 和端口的情况下,从远程主机发过来的网络数据中读取 ip 和端口,下位机再将应答发送到这个 ip 和端口上?
用socket编程的话,是可以实现的,我也调试通过了,现在我想用 netconn 编程,如何实现呢?
还望大神不吝赐教!
|
|