2int netdev_set_ipaddr(struct netdev *netdev, const ip_addr_t *ipaddr);
3/* 设置网卡网关地址 */
4int netdev_set_gw(struct netdev *netdev, const ip_addr_t *gw);
5/* 设置网卡子网掩码地址 */
6int netdev_set_netmask(struct netdev *netdev, const ip_addr_t *netmask);
7/* 设置网卡 DNS 服务器地址,主要用于网卡域名解析功能 */
8int netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, const ip_addr_t *dns_server);
设置网卡回调函数
可以用于设备网卡状态改变时调用的回调函数,状态的改变包括:up/down、 link_up/link_down、internet_up/internet_down、dhcp_enable/dhcp_disable 等。
1ypedef void (*netdev_callback_fn )(struct netdev *netdev, enum netdev_cb_type type);
2void netdev_set_status_callback(struct netdev *netdev, netdev_callback_fn status_callback);
1.5 获取网卡信息
判断网卡是否为 up 状态
1#define netdev_is_up(netdev)
判断网卡是否为 link_up 状态
1#define netdev_is_link_up(netdev)
判断网卡是否为 internet_up 状态
1#define netdev_is_internet_up(netdev)
判断网卡 DHCP 功能是否开启
1#define netdev_is_dhcp_enable(netdev)
1.6 默认网卡自动切换
单网卡模式下,开启和关闭默认网卡自动切换功能无明显效果。
多网卡模式下,如果开启默认网卡自动切换功能,当前默认网卡状态改变为 down 或 link_down 时,默认网卡会切换到网卡列表中第一个状态为 up 和 link_up 的网卡。这样可以使一个网卡断开后快速切换到另一个可用网卡,简化用户应用层网卡切换操作。如果未开启该功能,则不会自动切换默认网卡。
1.7 FinSH 命令
2、套接字组件(SAL)
socket 编程模型如下图所示:
客户端使用流程:
socket() 创建一个 socket,返回套接字的描述符,并为其分配系统资源。
connect() 向服务器发出连接请求。
send()/recv() 与服务器进行通信。
closesocket() 关闭 socket,回收资源。
服务器使用流程:
socket() 创建一个 socket,返回套接字的描述符,并为其分配系统资源。
bind() 将套接字绑定到一个本地地址和端口上。
listen() 将套接字设为监听模式并设置监听数量,准备接收客户端请求。
accept() 等待监听的客户端发起连接,并返回已接受连接的新套接字描述符。