完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
下边这段代码是我创建TCP客户端的一部分:
tcp_clientconn = netconn_new(NETCONN_TCP); //创建一个TCP链接 if(tcp_clientconn==NULL) { goto FLAG_FLASH; } err = netconn_connect(tcp_clientconn,&sip,server_port); //连接服务器 if(err!=ERR_OK) { netconn_delete(tcp_clientconn); //删除连接 tcp_clientconn=NULL; goto FLAG_FLASH; } 现在有个问题是当服务端不在,netconn_connect(tcp_clientconn,&sip,server_port)超时时间太长,有没有怎么可以 设置使得 netconn_connect(tcp_clientconn,&sip,server_port)这个在连接服务器可以超时时间短一点,怎么设置。 求指导 |
|
相关推荐
11个回答
|
|
求高人帮我看看呢
|
|
|
|
自己顶顶
|
|
|
|
ding ding ding
|
|
|
|
求帮忙啊,大神些
|
|
|
|
|
|
用的是哪个TCP的程序,LWIP还是?
|
|
|
|
是LWIP,我用的是示例程序更改的,我试了一下,一个netconn_connect()超时大概11s,太久了,等不起。我看网上有人说设置为非阻塞模式,但是我不知道怎么设置。你有其他方式吗? |
|
|
|
考虑改一下库文件,如下代码中 sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0)把参数0改成1000试试,单位ms
err_t tcpip_apimsg(struct api_msg *apimsg) { struct tcpip_msg msg; if (mbox != SYS_MBOX_NULL) { msg.type = TCPIP_MSG_API; msg.msg.apimsg = apimsg; sys_mbox_post(mbox, &msg); sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0); return ERR_OK; } return ERR_VAL; } |
|
|
|
TOPCB 发表于 2019-1-30 18:32 我改了,可以提高速度,我想问一下,sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0),timeout设为0,不是立即超时吗?我看了一下netconn_delete、读写操作都会用到,如果设置时间短的话会不会引起其他问题呢。比如netconn_delete(),我要是释放早了,然而另一个地方还在用,会不会造成内存问题? |
|
|
|
0不是立即超时,楼主可以看一下入口参数说明。
|
|
|
|
考虑改一下库文件,如下代码中 sys_arch_sem_wait
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1020 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
996 浏览 2 评论
2102 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1202 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1621 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 11:43 , Processed in 0.973115 second(s), Total 95, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号