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]