• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > cc3200有没有检测socket断掉的功能?

cc3200有没有检测socket断掉的功能?

录入:edatop.com     点击:

cc3200有没有检测socket断掉的功能?




我用cc3200 sl_select检测不到socket关闭的情况?使用的 skd1.0.0版本, servicepack 1.0.0.1.1版本在soket没有数据收发的情况下,模拟手动关闭soket后,select并不会检测到错误,返回值一直是0,我尝试在linux上测试select,发现是会返回错误-1的。
这里说明下,之所以模拟手动关闭socket,是因为,使用cc3200跑tcp 一段时间会出现连接中断的现象,抓包分析发现该中断是cc3200发送fin报文导致的中断(这个报文不是我应用层代码显示close引起的),然后cc3200就在select中死循环了,select一直返回0
以下是我的测试例子:
while(1){
//这里模拟手动关闭socket
if (flag == 1)  {
sl_Close(gSockfd );
flag=0;
}
timeout.tv_sec = 0;
timeout.tv_usec = 10;
SL_FD_ZERO(&wfds);
SL_FD_ZERO(&rfds);
SL_FD_SET(gSockfd, &wfds);
SL_FD_SET(gSockfd, &rfds);
active = sl_Select(gSockfd + 1, &rfds, &wfds, NULL, &timeout);
if (active > 0) {
if (SL_FD_ISSET(gSockfd, &wfds)) {
       发送数据
}
if (SL_FD_ISSET(gSockfd, &rfds)) {
       接收数据
}
}
if (active < 0) {
UART_PRINT("\n\r[Client] sl_Select(%d).\n\r", active);
break;
}
}

是的,目前是没有检测到SOCKET断掉的功能,需要通过应用层发送数据失败来探测。

上一篇:如何把官方从机工程改为串口BOOT的APP?
下一篇:cc2530怎么设置终端节点请求3次未入网则进入休眠呢?

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图