lwip协议 连续两次调用tcp_write只执行一次?

2019-03-24 12:30发布

while循环中连续调用了两个tcp_write函数,可是每次上位机只显示第一个tcp_write发送到的数据,第二个tcp_write发送的数据未显示。

下位机程序调试时,这两句tcp_write的代码都运行了。可是为什么网络调试助手只显示第一个tcp_write发送到的数据? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
喜鹊王子
2019-03-25 09:13
static err_t
TCP_Client_connected(void *arg,struct tcp_pcb *pcb,err_t err)
{  
tcp_write(pcb,"hello",sizeof("hello"),0);
  SysCtlDelay(SysCtlClockGet( )/3*1);//延时1秒  
  tcp_write(pcb,"lwip",sizeof("lwip"),0);
  return ERR_OK;
}
这个函数是9B96作为客户端连接上上位机时的回调函数,在这个回调函数中的两个 tcp_write只有第一个正确的在上位机显示。

后来我测试了下,将两句 tcp_write放到main的while循环中,两句tcp_write都能发送到上位机显示,不知道是什么原因?
while(1)
    {
                TCP_Client_Init();
                SysCtlDelay(SysCtlClockGet( )/3*1);//延时1秒
                tcp_write(pcb1,"hello",sizeof("hello"),0);
                SysCtlDelay(SysCtlClockGet( )/3*1);//延时1秒  
                tcp_write(pcb1,"lwip",sizeof("lwip"),0);
               
    }

一周热门 更多>

相关问题

    相关文章