libmicrohttpd
[Top][All Lists]
Advanced

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

Re: [libmicrohttpd] How to send Chunked messages


From: Christian Grothoff
Subject: Re: [libmicrohttpd] How to send Chunked messages
Date: Fri, 30 Nov 2018 23:16:33 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1

silvioprog: I don't understand why you'd use fopen() here instead of
just using the MHD_response_from_fd-style response generation. On
platforms where sendfile() is unavailable, MHD falls back to the usual
reading of the file into a buffer, so I don't quite see how you
re-implementing that logic helps. Sure, the fopen()-API might do some
additional buffering, but if you give MHD enough memory per connection,
you should get exactly the same effect.  So this just seems
unnecessarily convoluted (but I didn't try to understand the motivation
behind every branch in that code).

Happy hacking!

Christian

On 11/30/18 4:32 AM, silvioprog wrote:
> Hi Santos and Christian.
> 
> Santos, the Christian's answer was complete and clarified me a lot too. ☺
> 
> Christian, it seems sendfile() is not available in mingw and in the
> Google's NDK (Android), but my library must work at least on
> Windows, Linux, Raspbian and Android, so I've used the fopen() in this
> way: link
> <https://github.com/risoflora/libsagui/blob/master/src/sg_httpres.c#L112
> (sorry
> for put a link, but the code is a little bit large). Do you recommend to
> use fopen() in those cases? I would like to use sendfile() because it is
> very fast, but I can't implement it for Windows.
> 
> Thanks in advance for your help!
> 
> On Wed, Nov 28, 2018 at 1:55 PM Christian Grothoff <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     Dear Santos,
> 
>     MHD can send chunked response to the client. That said, this is not a
>     question of how large the file is. Especially, if it is simply a very
>     large file, MHD allows you to use sendfile() to avoid having a copy of
>     the data in userspace.  Chunked encoding is usually only used if the
>     application simply does not know the size of the response ahead of time.
> 
>     Happy hacking!
> 
>     Christian
> 
>     On 11/28/18 4:09 PM, Santos Das wrote:
>     > Hi,
>     >
>     > How can MHD send the chunked message to the client ?   
>     >
>     > When a server receives a simple GET request, and the response is so
>     > large that it must be sent back using the "chunked" procedure.
>     >
>     > An example would be if a server received a file GET request, and the
>     > response is a large data file.    
>     >
>     > Can you please point me to some example on how this can be done
>     using MHD ?
>     >
>     > Thanks in advance.
>     >
>     > Regards, Santos
> 
>  
> -- 
> Silvio Clécio

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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