Hi,

First of all great that you have been able to leap to 2.xx 😊


Keeping the connection open or not depends on your own needs. So there is no

simple reply to that.


As for buffering, it depends on your system design. Do you have an OS or are you

running without an OS, do you have sufficient RAM to create the buffering etc...


Do remember that while using RAW API, sending data not from the TCP own context

is not thread safe, that is if you use threads.


If you use an OS, one way is to use the poll call back and send all the data in 
the buffer

from within the poll call back. Meaning you add data to the buffer from one 
task and let

the poll call back check if that buffer has data to. This is a bit slow but 
easy to keep an eye...


To properly handle the data send you need to keep an eye on send window size 
etc..


I suggest checking the examples in the contribution section and especially the 
HTTP

server were you can see how you can send data and keep an eye on how much you

can send.


Another option that will be faster, is to create a call back function and call 
it from within the

tcp context by calling the sys_timeout function.


This way you set the timeout from your own code and when it is triggered it 
calls your function.

Your function will access the buffer or what other mechanism you use. You can 
also use the sent

call back to send more data when the last chunk was already sent, that is if 
the buffer has more data

to be sent.


I suggest first to think what you want to achieve and then design how.


Hope the above gave some ideas and helped.


BR,

Noam.

________________________________
From: lwip-users <lwip-users-bounces+noam=silrd....@nongnu.org> on behalf of 
mitchj <mit...@cirris.com>
Sent: Tuesday, June 27, 2017 9:06 PM
To: lwip-users@nongnu.org
Subject: Re: [lwip-users] A new users request for help with sending TCP Packets 
on Demand

Thank you,

I have read that page, and actually lept ahead to 2.0.0, it was an easier
upgrade than I expected. Further, I was able to get a basic example working
sending a string through a client. For now I have only a couple of questions
to help me in my design. I need to expand this so that I can send data from
anywhere in my full application.

So first off:
Is it best to attempt to keep the connection awake, or should this
connection be closed and opened for each transaction? Further, with a client
is there an equivalent of an accept callback that could open the connection
when the server decides to push data to the client? ... I'm probably
revealing how new I am at this.

Second:
How might some of you recommend queuing data to be sent from outside of the
lwip client. As in, my application wants to send data to the server, how
should it get that data into the client? I was thinking I'd write a function
that took raw data and added it to a buffer chain or something like that.

Am I on the wrong path?

Regards,



--
View this message in context: 
http://lwip.100.n7.nabble.com/A-new-users-request-for-help-with-sending-TCP-Packets-on-Demand-tp29868p29984.html
lwip-users - A new users request for help with sending TCP Packets on 
Demand<http://lwip.100.n7.nabble.com/A-new-users-request-for-help-with-sending-TCP-Packets-on-Demand-tp29868p29984.html>
lwip.100.n7.nabble.com
A new users request for help with sending TCP Packets on Demand. Hi there lwip 
users, I've had success sending UDP packets on demand, but am not finding 
success doing the same with a TCP...


Sent from the lwip-users mailing list archive at Nabble.com.

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users
lwip-users Info Page - 
non-GNU<https://lists.nongnu.org/mailman/listinfo/lwip-users>
lists.nongnu.org
Welcome to the lwip-users mailing list. Use it to ask questions, share your 
experience and discuss new ideas. To see the collection of prior postings to 
the list ...


_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to