完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CC3200客户端为什么反复断开、连接后无法再连接? 我用CC3200模块做TCP SERVER时,只有一个TCP客户端反复断开、连接,大概4次以后无法再连接。分析是达到socket连接限制(因为还有其他套接字),但客户端正常断开后 sl_Recv返回0,我在返回0后有关闭套接字,为什么还会出现这种情况呢,请问是什么问题? while(1) { // waiting for an app incoming TCP connection if ( g_iSockID_App < 0 ) { // accepts a connection form a TCP client, if there is any // otherwise returns SL_EAGAIN g_iSockID_App = sl_Accept(g_iSockID_AppServer, ( struct SlSockAddr_t *)&sAddr, (SlSocklen_t*)&iAddrSize); if (g_iSockID_App == SL_EAGAIN) { //sl_Close(g_iSockID_App); } else if(g_iSockID_App < 0) { // error sl_Close(g_iSockID_App); } else { // setting socket option to make the socket as non blocking enableOption.NonblockingEnabled = 1; //0 = disabled;1 = enabled;default = 1 lRetVal = sl_SetSockOpt(g_iSockID_App,SL_SOL_SOCKET,SL_SO_NONBLOCKING, (_u8 *)&enableOption,sizeof(enableOption)); //enable/disable nonblocking mode if( lRetVal < 0 ) { sl_Close(g_iSockID_App); } } } else { // waits for 1 packets from the connected TCP client lRetVal = sl_Recv(g_iSockID_App, g_cAppTcpBuf, TCP_CMD_RD_BUF_SIZE, 0); if (lRetVal == SL_EAGAIN); else if(lRetVal <=0) { // error sl_Close(g_iSockID_App); g_iSockID_App=SL_EAGAIN; //如果客户端正常断开的返回值为0 UART_PRINT("App client failed,lRetVal=%dnr",lRetVal); } else { //run command } } } |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3437个成员聚集在这个小组
加入小组物联网工程师必备:怎么选择不同的无线连接威廉希尔官方网站 ,本指南帮你忙!
3298 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3954 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3457 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4025 浏览 1 评论
20707 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
829浏览 2评论
1063浏览 2评论
1066浏览 1评论
1181浏览 1评论
406浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-8 02:46 , Processed in 0.683547 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号