Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
socket
10
socket应用方案选择
发布于 2020-10-22 10:24:25 浏览:1084
订阅该版
本人之前进行嵌入式开发均使用AT命令,对socket基本没有使用过。 现在切换到RTT,我打算在目前的项目中使用socket,有一些未决的方案,请各位大佬指导一下。 应用背景: 嵌入式IOT设备使用UDP与Server进行数据交互; 交互的数据有两类: 1.嵌入式IOT设备上传数据给Server,Server给出回应数据确认已收到; 2.Server下发命令修改嵌入式IOT配置; 备选方案1: 1.对每一条需要发送到server的数据,在发送时创建socket,使用sendto发送数据,并使用recvfrom接收server回应。recvfrom之前设置超时; 2. 对于server下发的cmd,发到了哪个socket呢?或者与服务器约定下发cmd一定是以收到heartbeat帧来触发,这样就可以用heartbeat的socket来接收server下发的cmd; 备选方案2: 设置一个全局socket,所有的数据收发均由这个socket来操作。 同时,使用方案2的话,我打算创建2个thread,一个thread_tx,一个thread_rx 可能的伪代码如下: void thread_tx(void) { 获取信号量 调用sendto发送数据; } void thread_rx(void) { 设置超时 recvfrom接收数据 } 疑问是:如何保护这个全局的socket,因为如果在tx的时候rx进行运行了或者rx的时候tx运行了,可能会发生某些错误 我认为:方案2需要在socket上做一个缓存区(队列?链表?)来存放需要发送的数据,而且由于recvfrom是阻塞的(虽然设置了超时),数据的实时性不够好。方案1是可以做到能实时性高一点,但是需要server端配合。
查看更多
2
个回答
默认排序
按发布时间排序
Ethen
2020-10-22
这家伙很懒,什么也没写!
根据您的描述,建议如下: 1.服务器发送命令时设置为广播模式 2.命令协议加上设备id 这样虽然很多设备都受到了指令,但是只有和自身设备id一样的命令才会生效。
Alex.Pan
2020-10-22
这家伙很懒,什么也没写!
想了想,我还需要一个通信监控进程。 这个进程用来监控netdev的状态, 当netdev由down--->up,创建socket,创建tx和rx 进程。 当netdev由up--->down,delete tx/rx进程,close socket。 同时还应当在网络异常导致socket异常时,进行tx/rx的重新创建以及socket的close,open 不知道是不是该这样?
撰写答案
登录
注册新账号
关注者
0
被浏览
1.1k
关于作者
Alex.Pan
这家伙很懒,什么也没写!
提问
21
回答
28
被采纳
1
关注TA
发私信
相关问题
1
W5500 如何实现断开重连?
2
AT组件连接BC26并使用Webclient软件包GET方式请求失败
3
Posix Socket采用select机制最多能监听多少个Socket
4
socket第三个参数无效
5
添加SAL组件后socket相关函数均提示declared implicitly
6
mqtt pipe 里面使用到了dfs, socket 是怎么关联起来dfs的?
7
closesocket函数调用会阻塞
8
基于AT Socket的测速工具
9
关于网络编程socket
10
你好,网络编程遇到bug,判断可能是系统级别的。
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
NXP MCXN947测评(二)ETH设备使用
2
【RA8D1-Vision Board】适配 LVGL V8
3
VISION BOARD 第二弹 基础工程配置和点亮一个LED灯
4
musb移植问题记录【设备注册3次挂起】
5
关于使用CherryUSB时候使用外挂的usb phy 芯片配置的一点注意事项
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
Hardfault
CAN总线
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
cubemx
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
ADC
BSP
中断
keil_MDK
编译报错
socket
MicroPython
GD32
msh
Debug
ulog
SDIO总线
SFUD
rt_mq_消息队列_msg_queue
C++_cpp
本月问答贡献
xiaorui
7
个答案
3
次被采纳
sakumisu
4
个答案
3
次被采纳
三世执戟
31
个答案
1
次被采纳
梦笑真美
18
个答案
1
次被采纳
踩姑娘的小蘑菇
14
个答案
1
次被采纳
本月文章贡献
Z_Y
2
篇文章
5
次点赞
Alipay
2
篇文章
3
次点赞
2345vor
2
篇文章
1
次点赞
比特饼干
1
篇文章
6
次点赞
Vangaoven
1
篇文章
3
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部