完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ti工程师,你们好:UDP客户端发送数据和接收数据中我使用了sl_Select去等待可发送和可接收事件,代码如下,但是出现的现象是写的sl_Select要等足8秒(我设置就为8秒)才返回,而读的sl_Select就一直都不返回,请问是我使用上存在问题还是其他什么原因呢?谢谢 SlTimeval_t sel_to; SlSockAddrIn_t ipas_addr; SlFdSet_t rfds, wfds; SlSockNonblocking_t enable_option; int i_addr_size, socket_fd = -1, ret; ipas_addr.sin_family = SL_AF_INET; ipas_addr.sin_port = sl_Htons(PORT); ipas_addr.sin_addr.s_addr = sl_Htonl(IP); i_addr_size = sizeof(SlSockAddrIn_t); socket_fd = sl_Socket(SL_AF_INET, SL_SOCK_DGRAM, 0); if(socket_fd < 0)[ DO_Printf("sl_Socket call Failure!rn"); goto function_exit; ] enable_option.NonblockingEnabled = 0x1; sl_SetSockOpt(socket_fd, SOL_SOCKET, SL_SO_NONBLOCKING, &enable_option, sizeof(enable_option)); keep_on_send: sel_to.tv_sec = 8; sel_to.tv_usec = 0; SL_FD_ZERO(&wfds); SL_FD_SET(socket_fd, &wfds); ret = sl_Select(socket_fd + 1, 0, &wfds, 0, &sel_to); if(ret < 0)[ DO_Printf("sl_Select1 call failure!rn"); goto function_exit; ]else[ if(SL_FD_ISSET(socket_fd, &wfds))[ ret = sl_SendTo(socket_fd, sp + already_len, willbe_len - already_len, 0, (SlSockAddr_t *)&ipas_addr, i_addr_size); if(ret < 0)[ DO_Printf("sl_SendTo call Failure!rn"); goto function_exit; ]else[ already_len += ret; DO_Printf("Send Data Count:%drn", already_len); if(already_len < willbe_len)[ goto keep_on_send; ] ] ]else[ DO_Printf("Send Data Timeout!rn"); goto function_exit; ] ] DO_Printf("Test Send Finishrn"); keep_on_recv: SL_FD_ZERO(&rfds); SL_FD_SET(socket_fd, &rfds); sel_to.tv_sec = 8; sel_to.tv_usec = 0; ret = sl_Select(socket_fd + 1, &rfds, 0, 0, &sel_to); if(ret < 0)[ DO_Printf("sl_Select2 call failure!rn"); goto function_exit; ]else[ if(SL_FD_ISSET(socket_fd, &rfds))[ ret = sl_RecvFrom(socket_fd, sp + already_len, willbe_len - already_len, 0, (SlSockAddr_t *)(&ipas_addr), (SlSocklen_t*)(&i_addr_size)); if(ret < 0)[ if(ret == SL_EAGAIN)[ goto keep_on_recv; ] DO_Printf("sll_SendTo call Failure!rn"); goto function_exit; ]else[ already_len += ret; if(already_len < willbe_len)[ goto keep_on_recv; ] ] ]else[ DO_Printf("Recv Data Timeout!rn"); goto function_exit; ] ] .....
|
|
相关推荐
5 个讨论
|
|
一个黄人 发表于 2020-5-4 16:43 不过这个问题我用其他办法解决了,后来想了下,其实没必要使用select。。。 请您帮我看看另外一个问题吧!就是如何获取CC3200 STA模式下的连接质量. http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/71209.aspx |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
661 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
587 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1041 浏览 1 评论
720 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
516 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
150浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
115浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
119浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
117浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
159浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 11:29 , Processed in 1.068199 second(s), Total 62, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号