Thanks for the reply Kieran.  From my perspective, of course it doesn't matter 
to me if lwIP continues to receive data provided there's space in the receive 
window.  I'm just trying to figure out the best way to handle the situation 
when my application's buffer is full.  I've been having trouble getting things 
to work, but this could be because of errors in my implementation rather than 
my lack of understanding of lwIP.

I'm using raw API, and I'm doing streaming audio, so after I initiate the 
connection, the application doesn't have to transmit anything else; it just 
receives.  So with that, here's what I think I need to do in the callback 
defined in tcp_recv().  Please correct me if I'm wrong:

-If I have space in my buffer, I take the data, then call tcp_recved() and 
pbuf_free().

-If there currently is not enough space in my buffer, I store the pbuf pointer 
for later.  I haven't tried this yet, but should I also call tcp_recved() with 
len=0?

-I periodically check if there's space in my buffer.  When there is, I retrieve 
the data from the pbuf pointer I stored.  Then I call tcp_recved() and 
pbuf_free().

I had planned on using tcp_poll() to do the periodic buffer checking, but it's 
a little slow (500ms).  Is it Ok if I instead do this in the ethernet/periodic 
interrupt before lwIP runs?









      
_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to