完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我在CC3000上建立了一个socket(例如UDP),之后不进行通讯,大约50秒这个socket就无效了。无效的意思是当我在次建立一个socket时返回的句柄是上次那个无效的socket。
如果我改为在CC3000上建立一个TCP socket并且作为服务端,并调用accept,这时我在PC机的调试助手上建立客户端去连接CC3000上的服务端。之后不做通讯(不发送数据给CC300,0, 在CC3000我也没有发送数据给客户端),大约过了50多秒之后。PC机的调试助手就显示这个连接被断开了。 然后我重复上述在PC机建立连接的过程,并等待它显示断开连接(同样没有通讯)。当我第三次连接时就会返回第一次连接时返回的句柄。这就说明第一次建立的连接确实是无效了。 不知道是什么问题。 |
|
相关推荐
11个回答
|
|
It's because socket inactivity timer expired. Please refer to: http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html.
如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
一个黄人 发表于 2018-6-23 07:47 打开的网页是空白的。 但是50秒是不是太短了呢。并且CC3000关闭时我并没有得到任何事件通知。可能过会还会在另外的地方使用了。 不只是TCP,UDP的socket也会失效。 ************************************************* 但是PC机上建立的socket却没有这个问题啊。 另外想问下我遇到的这个问题其他人遇到了吗。或者说这只是一个正常的现象呢? 谢谢。 |
|
|
|
第三代的年均卡上 发表于 2018-6-23 07:58 因为不像PC有很多的资源,像这种系统socket数目很有限。所以我们建议如果真是要长时间保持连接的话,最好是维护一个像心跳的功能,就是过段时间就发心跳包。 如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
一个黄人 发表于 2018-6-23 08:17 谢谢您的耐心解答。 也就是说我遇到的这个是正常现象了,是吗? 不过我这里有4块CC3000的模块,其中有一块是不会出现这种现象的。其他三块却有。 |
|
|
|
第三代的年均卡上 发表于 2018-6-23 08:23 你4块CC3000用的firmware是一模一样的吗?你会不会用wireshark, 可以抓一下TCP/IP包看一下是不是有什么包导致了这种现象。 如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
一个黄人 发表于 2018-6-23 08:37 四块CC3000的固件版本都是一样的。读出来都是1.24。抓包我可以试试。 我想知道这是正常现象吗?麻烦您了。 谢谢。 |
|
|
|
是的,这是正常的。 如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
一个黄人 发表于 2018-6-23 09:08 这是Sniffer抓包的截图。 其中192.168.1.100是CC3000模块。另外一个是PC机。 我并没有主动去控制CC3000去关闭连接。 只是觉的这个50多秒的时间由点短。而且之前有一个模块是没有这个现象的。 还是说这个时间的长短可以由EEPROM的中的参数决定呢? 如果是正常现象的话,那也没办法了。暂时只能这样。 |
|
|
|
第三代的年均卡上 发表于 2018-6-23 09:16 这个参数是不可改的,是固化的。如我之前建议的,可以在应用层里维护heartbeat功能保证它不断。 如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
一个黄人 发表于 2018-6-23 09:28 你好,我最近用刚买了CC3000也有这个问题,这个问题只能通过发送心跳包才能解决这个问题吗?是不是还能有其他的方法解决这个问题,是不是因为休眠产生的影响?谢谢! |
|
|
|
sonia87 发表于 2018-6-23 09:47 不是因为休眠产生的影响,请参考http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html,这是为了保护有限的socket session不被一直占用。 我现在能想到的就是心跳包。这个需要从应用层来处理。 如果有答案已经回答了您的问题,请标注为已回答。 Please close your question if it has been solved. ------------------------------------------------------------------ |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
669 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1048 浏览 1 评论
731 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
520 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
158浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
120浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
122浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:41 , Processed in 0.922567 second(s), Total 67, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号