最近在做一个1766上的实验,基于uCOSII操作系统的,用的是ZLG\TCPIP协议栈
现在有两个基于UDP的应用,这两个应用假设一个为A,一个为B,两者绑定同一个IP地址(板子的IP,我根据所需要应用的局域网环境自己设定的)不同的端口号。
A和B都需要一直运行,刚开始的时候A先运行,B后运行。
所以我建了两个任务,TASK_UDP_A和TASK_UDP_B,A的优先级比B优先级高,原以为可以运行,结果程序直接进入异常。
后来找到原因,TASK_UDP_A中需要建立两个套接字绑定两个不同的端口(比如166,167),TASK_UDP_B需要建立一个套接字绑定另一个端口(比如999),这时ZLG\TCPIP默认为套接字最多绑定两个不同端口(UDP.H文件中默认MAX_UDP_LINKS=2)。
所以我就改为MAX_UDP_LINKS=3,结果还是不行。
我又将UdpMaxRec的值改为1(UDP.H文件中默认UdpMaxRec=2),结果程序就能正常运行了,我用同个网段的PC机跟板子通信成功,TASK_UDP_B可以接收到PC机发出的UDP包并作出反应(修改一些某些参数)。
但为什么UDP接收缓冲区只能接收一条报文(为什么UdpMaxRec必须为1)?
求高手解释。
我要赚赏金打赏帖 |
|
|---|---|
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
我要赚赏金
