• 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连接。

  • 相关阅读:
    数组指针和指针数组的区别
    C++虚函数
    C++容器
    红黑树
    COM RTS/CTS, DTR/DSR
    linux和windows多线程的异同
    socket
    C++vector使用
    select函数详解
    linux下头文件
  • 原文地址:https://www.cnblogs.com/10cm/p/6594923.html
Copyright © 2020-2023  润新知