配网-复杂场景

复杂场景#

本章节旨在展示多网卡下的典型应用场景,以帮助用户理解多网卡环境下的网卡应用,并实现快速上手。

案例

4G + ethernet + Wi-Fi 共用情况下网络应用。根据使用需求,将不同网卡配置不同的工作模式,进入正常的工作状态后,通过改变默认网卡,来确定转发规则。

对于以太、Wi-Fi、蜂窝网络的使用,我们没有固定使用规则,由用户进行选择,我们建议对于多网络状态,模块使用网络优先级 以太 > Wi-Fi > 蜂窝。

  1. 使用 4G 作为默认网卡,Wi-Fi 与以太网络通过 4G 转发进行网络访问。

代码如下图所示:

复制代码
# 导入usocket模块
import dataCall
import network
import ethernet

if __name__ == '__main__':
    # 默认网卡配置
    defalut_nic = None

    # 获取 4G 信息
    lte = dataCall.getInfo(1, 0)
    print(lte)

    # Wi-Fi 初始化
    WiFi = network.ASR5803W(network.AP_IF)
    WiFi.config('ssid'='QuecPython', 'key'='quecpython')
    WiFi.active(True)
    print('Wi-Fi init success')

    # 以太网初始化。
    eth = ethernet.YT8512H(b'\x12\x34\x56\x78\x9a\xbc','192.168.1.1')
    eth.set_up()
    print('ethernet init success')

    # 设置 4G 作为默认网卡
    defalut_nic = lte[2][2]
    eth.set_default_NIC(defalut_nic)
  1. 使用以太网作为默认网卡,Wi-Fi 网络通过以太网转发进行网络访问。

代码如下图所示:

复制代码
# 导入usocket模块
import dataCall
import network
import ethernet

if __name__ == '__main__':
    # 默认网卡配置
    defalut_nic = None

    # 获取 4G 信息
    lte = dataCall.getInfo(1, 0)
    print(lte)

    # Wi-Fi 初始化
    WiFi = network.ASR5803W(network.AP_IF)
    WiFi.config('ssid'='QuecPython', 'key'='quecpython')
    WiFi.active(True)
    print('Wi-Fi init success')

    # 初始化以太网卡,以太网卡在WAN模式下使用DHCP协议动态获取IP地址,连接网络
    eth = ethernet.YT8512H(b'\x12\x34\x56\x78\x9a\xbc')
    eth.dhcp()
    eth.set_up()
    print('ethernet init success')

    # 设置以太网卡作为默认网卡
    defalut_nic = eth.ipconfig()[1][1]
    eth.set_default_NIC(defalut_nic)

常见问题#

Socket 如何和网卡绑定?#

请查看 TCP-UDP 章节

如何测试网络链路通达?#

提供 uping 模块检查网络,通过该模块 ping 各个网络,可以判断链路状态。比如以太网卡可以获取到ip,但是无法进行网络连接,此时需要检查整个网络环境,可能是上层路由器 wan 口未连接外网,也可能是外部网络配置限制导致网络不可用,就需要此功能进行整个链路检查。

复制代码
>>> import uping
>>> uping.ping('python.quectel.com')
uping.ping('python.quectel.com')

PING python.quectel.com (47.107.246.213): 64 data bytes

72 bytes from 47.107.246.213: icmp_seq=1, ttl=52, time=50.546000 ms
72 bytes from 47.107.246.213: icmp_seq=2, ttl=52, time=38.424000 ms

72 bytes from 47.107.246.213: icmp_seq=3, ttl=52, time=52.606000 ms

72 bytes from 47.107.246.213: icmp_seq=4, ttl=52, time=38.940000 ms
4 packets transmitted, 4 packets received, 0 packet loss
round-trip min/avg/max = 38.424/45.129/52.606 ms
相关推荐
曹牧10 小时前
C#:ToDouble
开发语言·c#
袁袁袁袁满10 小时前
Python读取doc文件打印内容
开发语言·python·python读取doc文件
zcfeng53010 小时前
PHP升级
开发语言·php
m0_7482523811 小时前
Ruby 模块(Module)的基本概念
开发语言·python·ruby
羊小猪~~11 小时前
【QT】-- QT基础类
开发语言·c++·后端·stm32·单片机·qt
专注数据的痴汉11 小时前
「数据获取」全国民用运输机场吞吐量排名(2006-2024)
java·大数据·服务器·数据库·信息可视化
木卫二号Coding11 小时前
Python-文件拷贝+文件重命名+shutil+记录
开发语言·python
bubiyoushang88811 小时前
基于Q-learning的路径规划MATLAB仿真程序实现
开发语言·matlab
l1t11 小时前
在arm64 Linux系统上编译tdoku-lib的问题和解决
linux·运维·服务器·c语言·cmake
FAFU_kyp11 小时前
Rust 结构体(struct)
开发语言·后端·rust