173  
查询码:00001147
mongoose网络库(纯C库)
作者: 赵硕文 于 2020年06月04日 发布在分类 / 物联网组 下,并于 2020年06月04日 编辑
网络通信

参考网址(https://cesanta.com/docs/overview/concept.html

Mongoose 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 listeningoutbound 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, etc.

An application that uses mongoose should follow a standard pattern of event-driven application:

  1. declare and initialise event manager:

    struct mg_mgr mgr; mg_mgr_init(&mgr, NULL); 
    		
         
       
       
    C
  2. Create connections. For example, a server application should create listening connections:

    struct mg_connection *c = mg_bind(&mgr, "80", ev_handler_function); mg_set_protocol_http_websocket(c); 
    		
         
       
       
    C
  3. create an event loop by calling mg_mgr_poll() in a loop:

    for (;;) { mg_mgr_poll(&mgr, 1000); } 
    		
         
       
       
    C

mg_mgr_poll() iterates over all sockets, accepts new connections, sends and receives data, closes connections and calls event handler functions for the respective events. For the full example, see Usage Example which implements TCP echo server.



 推荐知识

 历史版本

修改日期 修改人 备注
2020-06-04 16:28:53[当前版本] 赵硕文 创建版本

  目录
    知识分享平台 -V 4.8.7 -wcp