i'm building a TCP client with lwIP 1.1.0 on top of FreeRTOS.
i tried to use both APIs but have problem receiving TCP packet. if i use
netconn_recv() APIs, i can receive the packet. i'm trying to use
tcp_recv() instead
most of the codes is from basic web server supplied with FreeRTOS.
will this work ?
/********************************************************/
static err_t
recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
{
LWIP_UNUSED_ARG(arg);
LWIP_UNUSED_ARG(err);
printf("recv...\r\n");
// Inform TCP that we have taken the data
tcp_recved(pcb, p->tot_len);
return ERR_OK;
}
/********************************************************/
void vBasicTCPClient( void *pvParameters )
{
struct netconn *pxTCPListener;// *pxTCPNewConnection;
struct ip_addr xIpAddr, xNetMast, xGateway, xIPHost, addr;
extern err_t ethernetif_init( struct netif *netif );
static struct netif EMAC_if;
err_t err;
/* Parameters are not used - suppress compiler error. */
( void ) pvParameters;
/* Create and configure the EMAC interface. */
IP4_ADDR(&xIpAddr,emacIPADDR0,emacIPADDR1,emacIPADDR2,emacIPADDR3);
IP4_ADDR(&xNetMast,emacNET_MASK0,emacNET_MASK1,emacNET_MASK2,emacNET_MASK3);
IP4_ADDR(&xGateway,emacGATEWAY_ADDR0,emacGATEWAY_ADDR1,emacGATEWAY_ADDR2,emacGATEWAY_ADDR3);
netif_add(&EMAC_if, &xIpAddr, &xNetMast, &xGateway, NULL,
ethernetif_init, tcpip_input);
/* make it the default interface */
netif_set_default(&EMAC_if);
/* bring it up */
netif_set_up(&EMAC_if);
/* Create a new tcp connection handle */
pxTCPListener = netconn_new( NETCONN_TCP );
tcp_arg(pxTCPListener->pcb.tcp, NULL);
tcp_recv(pxTCPListener->pcb.tcp, recv_tcp); // set a callback
IP4_ADDR(&xIPHost,192,168,1,101); // IP of TCP server
netconn_bind(pxTCPListener, NULL, tcpSERVER_PORT );
err = netconn_connect(pxTCPListener, &xIPHost, tcpSERVER_PORT);
if (err == ERR_OK)
{
printf("connected...\r\n");
}
for( ;; )
{
}
}
thanks for your time !
_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users