[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] Libevent does not echo properly when there is a delay



On Wed, Nov 20, 2013 at 12:38 PM, Mickey Kawick <mickey@xxxxxxxxxxxxxxxx> wrote:
> Super cool Matt. In this example, adding "evthread_use_windows_threads"
> worked perfectly. I got the exact echo that I was expecting.
>
> What is the best way to write to that buffer? I am using this:
>
>       struct evbuffer* outputBuffer = bufferevent_get_output( bev );
>       evbuffer_add( outputBuffer, buffer, length );
>
>       int result = evbuffer_write( outputBuffer, socketId );
>       evbuffer_drain( outputBuffer,  length );
>       cout << "Write result = " << result << endl;
>
> Is there a better way?

You shouldn't need to call evbuffer_write() manually on a
bufferevent's output buffer, and you shouldn't call evbuffer_drain()
after evbuffer_write() since evbuffer_write() removes the data itself
after writing it.  Just use evbuffer_add to add the information to the
output buffer, and the write event on the buffer will make it get
written to the network.

best wishes,
-- 
Nick
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.