I have used bufferevent to send data to socket the application use variable length message, the first 4 bytes in message is the length
all thing is OK but for socket reconnect if the socket is closed by peer and my app reconnect peer may receive the wrong msg, the message length is wrong it seems the unsent data in bufferevent's output buffer will be send when the socket reconnect but the message boundary is broken in output buffer I guess it is because when I write message use bufferevent_write, one message is splited into two chunks in output buffer one chunk is send to peer before socket closed and the next chunk is sent to peer after socket reconnect, so the message is broken if it is true, can I get the data from output buffer and find the next message begin in data so I can discard the broken message and send the message follow it but I find I can't get the data from output buffer, the evbuffer_copyout function return -1 and I can't find the function to clear the output buffer to discard all message in buffer the only thing I can do is to free the bufferevent and create a new bufferevent when reconnect socket is it the right way to do such thing? Thank you! 2015-01-16 slump
