Hi Sébastien, You're right that the man page could be improved. Why not do that, and send us a pull request?
-Pieter On Wed, Sep 4, 2013 at 8:10 PM, Sébastien Pierre <[email protected]> wrote: > Thanks Pieter, > > On a side note, the documentation might benefit from an example and maybe a > clarification. I found this part from doc/zmq_socket.txt a bit misleading: > > "To close a specific client connection, as a server, send a zero-length > message following the identity frame." > > which I translated to the following code: > > zmq_send (server, 0, 0, ZMQ_SNDMORE); > zmq_send (server, id, id_size, ZMQ_SNDMORE); > > I obviously read "followed by" instead of "following", but maybe saying > "send the identify frame followed by a zero-length message" would be > clearer. > > I also got surprised that not using the ZMQ_SNDMORE in zmq_send flag would > result in not being able to respond to further requests. > > Thanks again for your explanation, > > -- Sébastien > > > > > 2013/9/4 Pieter Hintjens <[email protected]> >> >> ZMQ_STREAM does buffer, but only between the I/O thread and the >> application. That is, if you're reading from the socket slower than >> the network delivers data, it will queue up. However since it's a >> stream, potentially infinite, it would be pathological (and difficult) >> to buffer the whole request (essentially the whole connection). >> >> Remember that with TCP streams, there are no messages. When parsing >> HTTP, you read and accumulate data until you get either an end of >> connection, or that famous blank line signalling the end of the >> header; you then have to look for a Content-Size header, parse that, >> and then you can expect that many bytes of data after the blank line. >> >> -Pieter >> >> On Wed, Sep 4, 2013 at 7:41 PM, Sébastien Pierre >> <[email protected]> wrote: >> > Hi all, >> > >> > I'm new to ZMQ and wrote a quick and dirty HTTP server using the >> > recently >> > released ZMQ_STREAM socket type. I was wondering (before spending too >> > much >> > time on it) if this type of socket buffers the client's request before >> > sending it to the server (in the zmq_rcv). >> > >> > I'm thinking of the particular use case where a web browser is uploading >> > a >> > large file (say a 100Mb video). I've read here and there in the ZMQ >> > guide >> > that messages have to fit in the whole memory... is this the case with >> > ZMQ_STREAM as well? I assume that it's not the case and that we would >> > receive a series of messages instead of a 100Mb+ message, but I just >> > wanted >> > to hear that from the horse's mouth ;) >> > >> > Thanks, >> > >> > -- Sébastien >> > >> > _______________________________________________ >> > zeromq-dev mailing list >> > [email protected] >> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> > >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
