zoukankan      html  css  js  c++  java
  • LwIP协议栈接口

    协议栈api函数

    1、netconn_new      //UDP    TCP

    struct netconn*netconn_new(enum netconn_type t)

    为新连接申请一个连接结构netconn空间

    2、netconn_delete  //UDP   TCP

    err_t  netconn_delete(struct netconn *conn)

    删除一个连接结构netconn

    3、netconn_getaddr

    err_t netconn_getaddr(struct netconn *conn, ip_addr_t *addr, u16_t *port, u8_t local)

    获得一个连接结构netconn中的源IP地址和源端口号或者目的IP地址和目的端口号,local指明是获得源地址信息还是目的地址信息,当为1时表示本地,即源地址信息。

    4、netconn_bind   //UDP   TCP

    err_t netconn_bind(struct netconn *conn, ip_addr_t *addr, u16_t port)

    将一个连接结构与本地IP地址addr(IP_ADDR_ANY代表任何一个网络接口的IP地址)和端口号port进行绑定,作为服务器端程序,执行这一步的操作是必要的,服务器必须与熟知端口进行绑定才能接收客户端的连接请求。

    5、netconn_connect

    err_t netconn_connect(struct netconn *conn, ip_addr_t *addr, u16_t port)

    连接服务器,它将连接结构与目的IP地址addr和目的端口号port进行绑定,当作为TCP客户端程序时,调用该函数会导致连接握手产生。

    6、netconn_disconnect

    err_t netconn_disconnect(struct netconn *conn)

    只能使用在UDP连接中,功能是与服务器断开连接,对于UDP来说,就是将UDP控制块中的remote_ip和remote_port字段值清除。

    7、netconn_listen

    函数本质是一个宏,其调用原型如下

    #define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG)

    只在TCP的服务器程序中使用,函数的功能是将连接结构netconn置位侦听状态,即将TCP控制块的状态设置为LISTEN状态。

    8、netconn_accept

    err_t netconn_accept(struct netconn *conn, struct netconn **new_conn)

    一个只用于TCP服务器程序的函数,服务器调用此函数可以从acceptmbox邮箱中获得一个新建立的连接,若邮箱为空,则函数会一直阻塞,直至新连接到来。

    9、netconn_recv

    err_t   netconn_recv(struct netconn *conn, struct netbuf **new_buf);

    从连接的recvmbox邮箱中接收数据包,可用于TCP连接,也可用于UDP连接。函数会一直阻塞,直至从邮箱中获得数据消息,连接数据都封装在netbuf中。

    10、netconn_send

    err_t   netconn_send(struct netconn *conn, struct netbuf *buf);

    用于已经建立的UDP连接上(即UDP控制块中记录了目的IP地址和目的端口号)发送数据。

    11、netconn_write

    #define netconn_write(conn, dataptr, size, apiflags)
              netconn_write_partly(conn, dataptr, size, apiflags, NULL)

    用于在稳定的TCP连接上发送数据。

    12、netconn_close

    err_t   netconn_close(struct netconn *conn);

    关闭一个TCP连接。

  • 相关阅读:
    LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 1022. 从根到叶的二进制数之和(Sum of Root To Leaf Binary Numbers)
    LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)
    LeetCode 617. 合并二叉树(Merge Two Binary Trees)
    LeetCode 206. 反转链表(Reverse Linked List) 16
    LeetCode 104. 二叉树的最大深度(Maximum Depth of Binary Tree)
    LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
    LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
  • 原文地址:https://www.cnblogs.com/10cm/p/6594923.html
Copyright © 2011-2022 走看看