lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] receive speed down after transfer a while


From: vincent cui
Subject: [lwip-users] receive speed down after transfer a while
Date: Tue, 8 May 2012 02:28:49 +0000

All:

 

I use the latest LWIP 1.4.x from git.  And try to test lwIP receive speed by RAW api as following

I use tool send 2MB file, the speed is fast at first, but go to down after a while or transfer more times.

Anyone know the problem ?

 

 

static void close_conn(struct tcp_pcb *pcb)

{

      tcp_arg(pcb, NULL);

      tcp_sent(pcb, NULL);

      tcp_recv(pcb, NULL);

      tcp_close(pcb);

}

 

static err_t server_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)

{

      int len;

 

      if (err == ERR_OK && p != NULL) {

            tcp_recved(pcb, p->tot_len); 

            len =p->tot_len;

            pbuf_free(p);

            tcp_sent(pcb, NULL); /* No need to call back */

      } else {

            pbuf_free(p);

      }

 

      if (err == ERR_OK && p == NULL) {

            close_conn(pcb);

      }

      return ERR_OK;

}

 

 

static err_t server_accept(void *arg, struct tcp_pcb *pcb, err_t err){

      LWIP_UNUSED_ARG(arg);

      LWIP_UNUSED_ARG(err);

      tcp_setprio(pcb, TCP_PRIO_MIN);

      tcp_recv(pcb, server_recv);

      tcp_err(pcb, NULL);

      tcp_poll(pcb, NULL, 4);

      return ERR_OK;

}

 

static void server_init(void) 

    struct tcp_pcb *pcb; 

 

    pcb = tcp_new(); 

    tcp_bind(pcb, IP_ADDR_ANY, 8081);

         pcb = tcp_listen(pcb);

         tcp_accept(pcb, server_accept);          

 

         for (;;)

         {

                   vTaskDelay(50);

         }

}

 

void server_task(void *pvArg)

{

         dhcp_booting_wait();

        server_init();

}


reply via email to

[Prev in Thread] Current Thread [Next in Thread]