你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F107VCT6 TCP通讯超时问题

[复制链接]
nosignal 提问时间:2017-4-19 17:00 /

下边这段代码是我创建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)这个在连接服务器可以超时时间短一点,怎么设置。
       求指导

收藏 1 评论11 发布时间:2017-4-19 17:00

举报

11个回答
nosignal 回答时间:2017-4-19 17:27:48
求高人帮我看看呢
nosignal 回答时间:2017-4-19 17:39:59
自己顶顶
olive-349276 回答时间:2017-4-20 14:04:11
ding ding ding
nosignal 回答时间:2017-4-21 09:56:23
求帮忙啊,大神些
nosignal 回答时间:2017-4-21 10:24:39
废鱼 回答时间:2017-4-21 10:26:49
用的是哪个TCP的程序,LWIP还是?
nosignal 回答时间:2017-4-21 10:55:48
安 发表于 2017-4-21 10:26
用的是哪个TCP的程序,LWIP还是?

是LWIP,我用的是示例程序更改的,我试了一下,一个netconn_connect()超时大概11s,太久了,等不起。我看网上有人说设置为非阻塞模式,但是我不知道怎么设置。你有其他方式吗?
废鱼 回答时间:2017-4-21 16:05:52
考虑改一下库文件,如下代码中 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;
}
nosignal 回答时间:2017-4-21 19:53:35
安 发表于 2017-4-21 16:05
考虑改一下库文件,如下代码中 sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0)把参数0改成1000试试 ...

我改了,可以提高速度,我想问一下,sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0),timeout设为0,不是立即超时吗?我看了一下netconn_delete、读写操作都会用到,如果设置时间短的话会不会引起其他问题呢。比如netconn_delete(),我要是释放早了,然而另一个地方还在用,会不会造成内存问题?
废鱼 回答时间:2017-4-22 10:00:09
0不是立即超时,楼主可以看一下入口参数说明。
zbber 回答时间:2017-4-22 10:54:23
考虑改一下库文件,如下代码中 sys_arch_sem_wait
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版