Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esp
mongoose
Commits
2c83a50a
Commit
2c83a50a
authored
8 years ago
by
Marko Mikulicic
Committed by
Cesanta Bot
8 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Document %.*Q
PUBLISHED_FROM=5dc567f8978d5414835f7a2338a78ae9eb683f55
parent
1c80fc28
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
19 deletions
+19
-19
intro.md
docs/design-concept/intro.md
+8
-8
memory-buffers.md
docs/design-concept/memory-buffers.md
+6
-6
overview.md
docs/overview.md
+4
-4
intro.md
docs/usage-example/intro.md
+1
-1
No files found.
docs/design-concept/intro.md
View file @
2c83a50a
...
...
@@ -8,22 +8,22 @@ items:
---
Mongoose is a multi-protocol networking library that implements non-blocking,
asyncronous IO and provides event-based API. It has three basic data
asyncronous IO and provides event-based API
s
. It has three basic data
structures:
-
`struct mg_mgr`
is an event manager that holds all active connections
-
`struct mg_connection`
describes a connection
-
`struct mbuf`
describes data buffer (received or sent data)
Connections could be either
*listening*
,
*outbound*
or
*inbound*
.
Outbound
connections are created by
`mg_connect()`
call.
Listening connections are
created by
`mg_bind()`
call.
Inbound connections are those accepted by a
listening connection.
Each connection is described by
`struct mg_connection`
Connections could be either
*listening*
,
*outbound*
or
*inbound*
. Outbound
connections are created by
the
`mg_connect()`
call.
Listening connections are
created by
the
`mg_bind()`
call.
Inbound connections are those accepted by a
listening connection.
Each connection is described by the
`struct mg_connection`
structure, which has a number of fields like socket, event handler function,
send/receive buffer, flags, et
cetera
.
send/receive buffer, flags, et
c
.
Mongoose
usage pattern is to declare and initializ
e event manager, create
Mongoose
's usage pattern is to declare and initialis
e event manager, create
connections and create an event loop by calling
`mg_mgr_poll()`
in a loop.
`mg_mgr_poll()`
iterates over all sockets, accepts new connections, sends and
receives data, closes connections
,
and calls event handler functions for the
receives data, closes connections and calls event handler functions for the
respective events.
This diff is collapsed.
Click to expand it.
docs/design-concept/memory-buffers.md
View file @
2c83a50a
...
...
@@ -2,13 +2,13 @@
title
:
Memory buffers
---
Each connection has 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
`MG_EV_RECV`
event.
U
ser may send data back by calling one of the output functions, like
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 u
ser may send data back by calling one of the output functions, like
`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
`struct mg_connection::send_mbuf`
and sends
`MG_EV_SEND`
event. When
connection
is closed,
`MG_EV_CLOSE`
event is sent.
`struct mg_connection::send_mbuf`
and sends
an
`MG_EV_SEND`
event. When the
connection
is closed,
an
`MG_EV_CLOSE`
event is sent.

This diff is collapsed.
Click to expand it.
docs/overview.md
View file @
2c83a50a
...
...
@@ -3,16 +3,16 @@ title: Overview
---
Mongoose is a swiss army knife for embedded network programming.
It implements event-driven non-blocking API for TCP, UDP, HTTP,
WebSocket, CoAP, MQTT for
both
client and server mode.
It implements event-driven non-blocking API
s
for TCP, UDP, HTTP,
WebSocket, CoAP, MQTT for client and server mode.
Features include:
-
Cross-platform: works on Linux/UNIX, MacOS, QNX, eCos, Windows, Android,
iPhone, FreeRTOS (TI CC3200, ESP8266)
, etc
iPhone, FreeRTOS (TI CC3200, ESP8266)
and more
-
Single-threaded, asynchronous, non-blocking core with simple event-based API
-
Native support for
[
PicoTCP embedded TCP/IP stack
](
http://www.picotcp.com
)
,
[
LWIP embedded TCP/IP stack
](
https://en.wikipedia.org/wiki/LwIP
)
-
Builtin protocols:
-
Built
-
in protocols:
-
plain TCP, plain UDP, SSL/TLS (over TCP, one-way or two-way)
-
HTTP client and server
-
WebSocket client and server
...
...
This diff is collapsed.
Click to expand it.
docs/usage-example/intro.md
View file @
2c83a50a
...
...
@@ -3,7 +3,7 @@ title: Usage Example
---
-
Copy
`mongoose.c`
and
`mongoose.h`
to your build tree
-
Write code that uses Mongoose API, e.g. in
`my_app.c`
-
Write code that uses
the
Mongoose API, e.g. in
`my_app.c`
-
Compile application:
`$ cc my_app.c mongoose.c`
```
c
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment