我也遇到和LZ一样的问题,发到4096就不能发送,PUBFF我也已经释放了
/-----------------------------------------------------------------------------//// 接收到数据的回调函数// //-----------------------------------------------------------------------------err_t recv_now(void *arg,struct tcp_pcb *tpcb, struct pbuf *p, err_t err) {
if(p != NULL) //如果收到的数据不为空 { Oled_Dis_Clear(); Oled_Dis_string(0, 0,(char*)p->payload);
Uart0_Send((unsigned char*)p->payload,p->len); tcp_write(tpcb,p->payload,p->len,0); //将接收到的数据发送出去 pbuf_free(p); // 释放缓冲区数据 } return ERR_OK; }
//-----------------------------------------------------------------------------//// 接受连接请求// //-----------------------------------------------------------------------------err_t accept_now(void *arg, struct tcp_pcb *newpcb, err_t err){ tcp_accepted(newpcb); tcp_recv(newpcb,recv_now); return 0; }
//-----------------------------------------------------------------------------//// 初始化客户端TCP// //-----------------------------------------------------------------------------void TCP_Client_Init(){ struct tcp_pcb *local_pcb; struct tcp_pcb *now_pcb; local_pcb = tcp_new(); // 建立通信的TCP控制块(Clipcb) tcp_bind(local_pcb,IP_ADDR_ANY,ENET_LWIP_TCP_PORT); // 绑定本地IP地址和端口号 now_pcb = tcp_listen (local_pcb); // 监听端口 tcp_accept(now_pcb,accept_now); }
[ 本帖最后由 greedangel 于 2010-12-16 14:24 编辑 ]