Jade0709 发表于 2010-8-3 22:20:46

tcp_write函数的问题

大家好,我在移植LwIP之后,写了一个简单的TCP测试程序,设备作服务器,PC做客户端,PC发送数据,设备原样返回

程序如下:
问题是:在调用tcp_write时当最后一个参数(apiflag)写1就完全没有问题,写0数据就发不出去
/****************************App接口测试线程*************************************************/
void T_Server(void * pvArg)
{

        struct udp_pcb * u_pcb;
        struct tcp_pcb * t_pcb, * http_pcb;
        struct ip_addr ipaddr;
        IP4_ADDR(&ipaddr, IP_ADDR_0, IP_ADDR_1, IP_ADDR_2, IP_ADDR_3);



        //TCP server
        t_pcb=tcp_new();
        tcp_bind(t_pcb, &ipaddr,2000);
        t_pcb=tcp_listen(t_pcb);
        tcp_accept(t_pcb,tcp_callback);


        while(TRUE)
        {
         }
}

/***************************TCP 的两个回调函数*****************************************/
err_ttcp_recv_callback(void *arg, struct tcp_pcb *tpcb,struct pbuf *p, err_t err){
        err_t tmperr;
        //连接被动关闭(对方发布fin消息)
        if(p==NULL){
                //tmperr=tcp_close(tpcb);
        }
        else{
                tmperr=tcp_write(tpcb, p->payload, p->len,0);//!!!问题
                tcp_recved(tpcb, p->len);

        }
        pbuf_free(p);
        return ERR_OK;
}


err_ttcp_callback(void *arg, struct tcp_pcb *newpcb,err_t err){
        tcp_recv(newpcb,tcp_recv_callback);
        return ERR_OK;
}
页: [1]
查看完整版本: tcp_write函数的问题