多线程socket冲突的问题

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

多线程socket冲突的问题

Postby bobby_jiang » Tue Sep 05, 2017 12:38 am

Hi 乐鑫FAE大牛们,
我用的是V1.5.0版本的rtos的sdk。
我起了两个任务,每个任务都创建一个tcp socket 客户端,每个socket都是设置成非阻塞的。
其中一个任务的socket,我用select去监测读和写这个socket;另外一个任务的socket,我收发完数据后,就把它close了。
但是,我发现经常出现以下现象(但不是必现的现象):一旦把另外一个socket close掉,则剩下的那个socket的select返回值变成-1,errno却是0。

说明一下:剩下socket的select操作只针对本socket fd,用来监听本socket fd的读和写,不涉及到另外一个任务中的socket fd。也就是说每个socket都是在各自的任务中创建、读写和close的,按照道理应该是互相独立的,但是为啥会互相影响?

难道乐鑫的esp8266的freertos+lwip不支持在多个任务中创建多个不同的socket吗?麻烦帮忙找一下原因!

Regards
Bobby

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Tue Sep 05, 2017 9:31 am

哪位乐鑫的大牛帮忙分析一下问题,兄弟多谢了!

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Wed Sep 06, 2017 9:37 am

乐鑫的fae可以帮忙给个意见吗?或者还需要我提供哪些技术细节或者哪部分代码都行?

Her Majesty
Posts: 190
Joined: Mon Oct 27, 2014 11:09 am

Re: 多线程socket冲突的问题

Postby Her Majesty » Wed Sep 06, 2017 10:16 am


bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Wed Sep 06, 2017 11:25 pm

Hi Majesty,
你给的两个链接地址,没有多个socket tcp client的示例,并且用的是espconn_connect()这类的接口。
我采用的是lwip的通用socket接口,例如socket(), connect(), select()等通用socket 接口函数。
可否提供一个多个tcp socket的client的例子参考一下?
谢谢!

Regards
Bobby

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Sun Sep 10, 2017 10:50 pm

Hi Majesty,
我试着把SDK的版本从1.5.0退回到1.4.2,跟你们反馈的多线程socket冲突的问题就没有了,我强烈怀疑你们RTOS 1.5.0的版本有bug。
请你们试着提供一个两个任务、两个socket tcp client的例子,测试一下RTOS 1.5.0的sdk!!!
谢谢!

Regards
Bobby

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Tue Sep 12, 2017 9:58 am

哪位乐鑫的技术支持,可以和研发确认一下吗?
没有理由同样的代码,再rtos 1.4.2上面没有问题,在1.5.0上就有问题。
谢谢!

Regards
Bobby

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Fri Sep 15, 2017 9:10 am

乐鑫的技术大牛们,怎么都没有人回复啊。
这个实验很清楚的:两个任务,各自一个tcp socket client,关闭其中一个socket,会导致另外一个socket select出错。
1.5版本的rtos sdk会有这个错误,但是1.4.2版本的rtos sdk就没有这个现象。
你们自己稍微试验一下就可以知道了。

ESP_Faye
Posts: 1623
Joined: Mon Oct 27, 2014 11:08 am

Re: 多线程socket冲突的问题

Postby ESP_Faye » Fri Sep 15, 2017 12:56 pm

你好,

我们正在处理中,晚些时候会给你反馈。

感谢你对 ESP8266 的关注!

bobby_jiang
Posts: 25
Joined: Tue Sep 29, 2015 4:27 pm

Re: 多线程socket冲突的问题

Postby bobby_jiang » Wed Sep 20, 2017 11:28 pm

Hi ESP_Faye,
这个case有什么进展了吗?thanks

Regards
Bobby

Who is online

Users browsing this forum: No registered users and 11 guests