2016-05-12 04:36:12 +08:00
|
|
|
---
|
|
|
|
title: Memory buffers
|
|
|
|
---
|
|
|
|
|
2016-07-21 21:30:03 +08:00
|
|
|
Each connection has a send and receive buffer, `struct mg_connection::send_mbuf`
|
|
|
|
and `struct mg_connection::recv_mbuf` respectively. When data arrives,
|
|
|
|
Mongoose appends received data to the `recv_mbuf` and triggers an `MG_EV_RECV`
|
|
|
|
event. The user may send data back by calling one of the output functions, like
|
2016-05-12 04:36:12 +08:00
|
|
|
`mg_send()` or `mg_printf()`. Output functions append data to the `send_mbuf`.
|
|
|
|
When Mongoose successfully writes data to the socket, it discards data from
|
2016-07-21 21:30:03 +08:00
|
|
|
`struct mg_connection::send_mbuf` and sends an `MG_EV_SEND` event. When the connection
|
|
|
|
is closed, an `MG_EV_CLOSE` event is sent.
|
2016-05-12 04:36:12 +08:00
|
|
|
|
2016-05-26 17:37:52 +08:00
|
|
|
![](media/mbuf.png)
|