硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2413|回复: 4
收起左侧

[LwIP] 多线程写1个SOCKET

[复制链接]

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2020-3-3 16:02:55 | 显示全部楼层 |阅读模式
多个线程都有可能要发送数据,这情况要怎么解决呢,是不是只能一个线程写SOCKET,其它线程要发送数据就线程之间通讯来发送数据。
安富莱的例程有相关的例程吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-3-3 17:19:35 | 显示全部楼层
可以,每个任务写一个socket,管理比较方便。

1、LWIP里面的这个你创建多个netconn任务即可:

LwIP网络教程开始更新,使用MDK的RTE环境开发,配套RTX5和FreeRTOS两个版本。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=95874


2、或者RL-TCPnet v7.x里面的多客户端例子,就是用多个任务创建的,管理比较方便

新版RL-TCPnet V7.X网协议栈和物联网教程开始更新,配RTX5和FreeRTOS两版本
http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243

回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
发表于 2020-3-3 18:06:32 | 显示全部楼层
个人建议,仅供参考:使用队列,其他线程要发送的数据扔到队列里面,然后发送线程就监听队列,有数据就通过socket发送出去就好了
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2020-3-7 16:06:23 | 显示全部楼层
eric2013 发表于 2020-3-3 17:19
可以,每个任务写一个socket,管理比较方便。

1、LWIP里面的这个你创建多个netconn任务即可:

每个任务写一个socket的话对于服务端来说 一个设备多个tcp连接了,这样的服务器下发数据的时候每个任务都有可能收到数据了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-3-7 18:30:44 | 显示全部楼层
又一个暑假 发表于 2020-3-7 16:06
每个任务写一个socket的话对于服务端来说 一个设备多个tcp连接了,这样的服务器下发数据的时候每个任务都 ...

明白了,三楼方法适合你。

我以为你要建立多个socket呢。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 17:24 , Processed in 0.217190 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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