配网-复杂场景

复杂场景#

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

案例

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
相关推荐
乐启国际旅行社有限公司16 分钟前
Java线程池实战:文旅系统批量任务性能优化(团期生成/数据导出)
java·开发语言·性能优化
宸津-代码粉碎机36 分钟前
告别手动Jar部署!生产级无损热部署方案,彻底解决OOM与更新失效问题
java·大数据·开发语言·人工智能·python
米码收割机37 分钟前
【移动】线上购物移动端网站(源码+文档)【独一无二】
java·开发语言·前端·python·django
未知违规用户42 分钟前
大模型项目: 学习FastAPI 服务器开发
服务器·人工智能·python·学习·fastapi
小肝一下43 分钟前
多态(上)
android·开发语言·c++·vscode·多态·面向对象·伊蕾娜
ljj2535575051__1 小时前
LVS(Linux virual server)
服务器·网络·lvs
Ivan CloudBay1 小时前
服务器关机后,网站会发生什么?
运维·服务器
程序员小崔日记9 小时前
20块钱注册一年 .COM 域名!Spaceship 最新优惠教程,支付宝即可付款(附优惠码)
服务器·腾讯云·域名
实心儿儿10 小时前
Linux —— 进程间关系和守护进程
linux·运维·服务器
林浅不想努力10 小时前
LVS知识点总结
服务器·云原生·lvs