当前位置: 首页 > news >正文

flutter选择国家或地区的电话号码区号

在这里插入图片描述

1.国家区号列表(带字母索引侧边栏)

import 'package:generated/l10n.dart';
import 'package:widget/login/area_index_bar_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';class LoginAreaListWidget extends StatefulWidget {State<StatefulWidget> createState() => _LoginAreaListWidgetState();
}class _LoginAreaListWidgetState extends State<LoginAreaListWidget> {// 字典里面放item和高度对应的数据final Map _groupOffsetMap = {};ScrollController _scrollController;final List<Areas> _listDatas = [];void initState() {super.initState();_listDatas.addAll(datas);var _groupOffset = 80.h * (_headerData.length - 1) + 40.h;//经过循环计算,将每一个头的位置算出来,放入字典for (int i = 0; i < _listDatas.length; i++) {if (_listDatas[i].name == null) {_groupOffsetMap.addAll({_listDatas[i].indexLetter: _groupOffset});_groupOffset += 40.h;} else {_groupOffset += 80.h;}}_scrollController = ScrollController();}final List<Areas> _headerData = [Areas(),Areas(areaCode: 86, name: S.current.c1),Areas(areaCode: 852, name: S.current.c2),Areas(areaCode: 1, name: S.current.c3),Areas(areaCode: 44, name: S.current.c4),Areas(areaCode: 1, name: S.current.c5),Areas(areaCode: 61, name: S.current.c6),Areas(areaCode: 49, name: S.current.c7),Areas(areaCode: 81, name: S.current.c8),];Widget _itemForRow(BuildContext context, int index) {// 系统cellif (index < _headerData.length) {if (index == 0) {return _FriendsCell(name: S.current.remen,groupTitle: S.current.remen,);}return _FriendsCell(areaCode: _headerData[index].areaCode,name: _headerData[index].name,hideBorder: index == _headerData.length - 1 ? true : false,);}int length = _headerData.length;//显示剩下的cell//如果当前和上一个cell的indexLetter一样,就不显示bool _hideIndexLetter = (index - length > 0 &&_listDatas[index - length].indexLetter ==_listDatas[index - (length + 1)].indexLetter);// 如果当前和下一个cell的indexLetter不一样,就不显示borderbool _hideBorder = index + 1 == _listDatas.length + _headerData.length? true: (index - length > 0 &&_listDatas[index - length].indexLetter !=_listDatas[index - (length - 1)].indexLetter);return _FriendsCell(areaCode: _listDatas[index - length].areaCode,name: _listDatas[index - length].name,groupTitle:_hideIndexLetter ? null : _listDatas[index - length].indexLetter,hideBorder: _hideBorder);}Widget build(BuildContext context) {return Stack(children: [Container(child: ListView.builder(itemBuilder: _itemForRow,controller: _scrollController,itemCount: _listDatas.length + _headerData.length,),),Positioned(top: 0,right: 0,bottom: 0,child: Container(width: 100.w,child: AreaIndexBarWidget(indexBarCallBack: (String str) {if (_groupOffsetMap[str] != null) {_scrollController.animateTo(_groupOffsetMap[str],duration: Duration(milliseconds: 10),curve: Curves.easeIn);}},),))],);}
}class _FriendsCell extends StatelessWidget {final int areaCode;final String name;final String groupTitle;final bool hideBorder;const _FriendsCell({this.areaCode, this.name, this.groupTitle, this.hideBorder}); //首字母大写Widget build(BuildContext context) {return groupTitle != null? Container(color: Colors.black.withOpacity(0.1),padding: EdgeInsets.only(left: 40.w),height: 40.h,alignment: Alignment.centerLeft,child: Text(groupTitle,style: TextStyle(fontSize: 24.sp, color: Color(0xff333333)),),): InkWell(onTap: () {Navigator.pop(context, areaCode);},child: Container(color: Colors.white,height: 80.h,padding: EdgeInsets.only(left: 40.w, right: 100.w),child: Container(decoration: BoxDecoration(border: hideBorder? Border(): Border(bottom: BorderSide(width: 1,color: Color(0xff5dc8b6).withOpacity(0.3)))),child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [Text(name,style:TextStyle(fontSize: 28.sp, color: Color(0xff333333)),),Text('+$areaCode',style:TextStyle(fontSize: 28.sp, color: Color(0xff333333)),)],),),),);}
}class Areas {final int areaCode;final String name;final String indexLetter; //首字母大写Areas({this.areaCode, this.name, this.indexLetter});
}List<Areas> datas = [Areas(indexLetter: 'A'),Areas(areaCode: 43, name: S.current.c9, indexLetter: 'A'),Areas(areaCode: 61, name: S.current.c10, indexLetter: 'A'),Areas(areaCode: 20, name: S.current.c11, indexLetter: 'A'),Areas(areaCode: 372, name: S.current.c12, indexLetter: 'A'),Areas(areaCode: 353, name: S.current.c13, indexLetter: 'A'),Areas(areaCode: 971, name: S.current.c14, indexLetter: 'A'),Areas(indexLetter: 'B'),Areas(areaCode: 32, name: S.current.c15, indexLetter: 'B'),Areas(areaCode: 55, name: S.current.c16, indexLetter: 'B'),Areas(areaCode: 359, name: S.current.c17, indexLetter: 'B'),Areas(areaCode: 354, name: S.current.c18, indexLetter: 'B'),Areas(areaCode: 92, name: S.current.c19, indexLetter: 'B'),Areas(areaCode: 507, name: S.current.c20, indexLetter: 'B'),Areas(areaCode: 595, name: S.current.c21, indexLetter: 'B'),Areas(areaCode: 51, name: S.current.c22, indexLetter: 'B'),Areas(areaCode: 48, name: S.current.c23, indexLetter: 'B'),Areas(areaCode: 1787, name: S.current.c24, indexLetter: 'B'),Areas(indexLetter: 'D'),Areas(areaCode: 49, name: S.current.c25, indexLetter: 'D'),Areas(areaCode: 45, name: S.current.c26, indexLetter: 'D'),Areas(areaCode: 1809, name: S.current.c27, indexLetter: 'D'),Areas(areaCode: 228, name: S.current.c28, indexLetter: 'D'),Areas(indexLetter: 'E'),Areas(areaCode: 593, name: S.current.c29, indexLetter: 'E'),Areas(areaCode: 7, name: S.current.c30, indexLetter: 'E'),Areas(indexLetter: 'F'),Areas(areaCode: 33, name: S.current.c31, indexLetter: 'F'),Areas(areaCode: 679, name: S.current.c32, indexLetter: 'F'),Areas(areaCode: 358, name: S.current.c33, indexLetter: 'F'),Areas(areaCode: 63, name: S.current.c34, indexLetter: 'F'),Areas(indexLetter: 'G'),Areas(areaCode: 995, name: S.current.c35, indexLetter: 'G'),Areas(areaCode: 1473, name: S.current.c36, indexLetter: 'G'),Areas(indexLetter: 'H'),Areas(areaCode: 82, name: S.current.c37, indexLetter: 'H'),Areas(areaCode: 31, name: S.current.c38, indexLetter: 'H'),Areas(indexLetter: 'J'),Areas(areaCode: 1, name: S.current.c39, indexLetter: 'J'),Areas(areaCode: 420, name: S.current.c40, indexLetter: 'J'),Areas(indexLetter: 'K'),Areas(areaCode: 385, name: S.current.c41, indexLetter: 'K'),Areas(areaCode: 974, name: S.current.c42, indexLetter: 'K'),Areas(indexLetter: 'L'),Areas(areaCode: 856, name: S.current.c43, indexLetter: 'L'),Areas(areaCode: 371, name: S.current.c44, indexLetter: 'L'),Areas(areaCode: 423, name: S.current.c45, indexLetter: 'L'),Areas(areaCode: 370, name: S.current.c46, indexLetter: 'L'),Areas(areaCode: 352, name: S.current.c47, indexLetter: 'L'),Areas(areaCode: 40, name: S.current.c48, indexLetter: 'L'),Areas(indexLetter: 'M'),Areas(areaCode: 389, name: S.current.c49, indexLetter: 'M'),Areas(areaCode: 60, name: S.current.c50, indexLetter: 'M'),Areas(areaCode: 960, name: S.current.c51, indexLetter: 'M'),Areas(areaCode: 356, name: S.current.c52, indexLetter: 'M'),Areas(areaCode: 52, name: S.current.c53, indexLetter: 'M'),Areas(areaCode: 377, name: S.current.c54, indexLetter: 'M'),Areas(areaCode: 976, name: S.current.c55, indexLetter: 'M'),Areas(areaCode: 382, name: S.current.c56, indexLetter: 'M'),Areas(areaCode: 212, name: S.current.c57, indexLetter: 'M'),Areas(areaCode: 95, name: S.current.c58, indexLetter: 'M'),Areas(areaCode: 1, name: S.current.c59, indexLetter: 'M'),Areas(areaCode: 1284, name: S.current.c60, indexLetter: 'M'),Areas(indexLetter: 'N'),Areas(areaCode: 977, name: S.current.c61, indexLetter: 'N'),Areas(areaCode: 234, name: S.current.c62, indexLetter: 'N'),Areas(areaCode: 47, name: S.current.c63, indexLetter: 'N'),Areas(areaCode: 27, name: S.current.c64, indexLetter: 'N'),Areas(indexLetter: 'P'),Areas(areaCode: 351, name: S.current.c65, indexLetter: 'P'),Areas(indexLetter: 'R'),Areas(areaCode: 81, name: S.current.c66, indexLetter: 'R'),Areas(areaCode: 46, name: S.current.c67, indexLetter: 'R'),Areas(areaCode: 41, name: S.current.c68, indexLetter: 'R'),Areas(indexLetter: 'S'),Areas(areaCode: 357, name: S.current.c69, indexLetter: 'S'),Areas(areaCode: 1869, name: S.current.c70, indexLetter: 'S'),Areas(areaCode: 1758, name: S.current.c71, indexLetter: 'S'),Areas(areaCode: 966, name: S.current.c72, indexLetter: 'S'),Areas(areaCode: 421, name: S.current.c73, indexLetter: 'S'),Areas(areaCode: 386, name: S.current.c74, indexLetter: 'S'),Areas(areaCode: 94, name: S.current.c75, indexLetter: 'S'),Areas(areaCode: 249, name: S.current.c76, indexLetter: 'S'),Areas(indexLetter: 'T'),Areas(areaCode: 255, name: S.current.c77, indexLetter: 'T'),Areas(areaCode: 66, name: S.current.c78, indexLetter: 'T'),Areas(areaCode: 676, name: S.current.c79, indexLetter: 'T'),Areas(areaCode: 216, name: S.current.c80, indexLetter: 'T'),Areas(areaCode: 90, name: S.current.c81, indexLetter: 'T'),Areas(indexLetter: 'W'),Areas(areaCode: 380, name: S.current.c82, indexLetter: 'W'),Areas(areaCode: 598, name: S.current.c83, indexLetter: 'W'),Areas(indexLetter: 'X'),Areas(areaCode: 30, name: S.current.c84, indexLetter: 'X'),Areas(areaCode: 36, name: S.current.c85, indexLetter: 'X'),Areas(areaCode: 64, name: S.current.c86, indexLetter: 'X'),Areas(areaCode: 65, name: S.current.c87, indexLetter: 'X'),Areas(areaCode: 34, name: S.current.c88, indexLetter: 'X'),Areas(areaCode: 852, name: S.current.c89, indexLetter: 'X'),Areas(indexLetter: 'Y'),Areas(areaCode: 91, name: S.current.c90, indexLetter: 'Y'),Areas(areaCode: 62, name: S.current.c91, indexLetter: 'Y'),Areas(areaCode: 972, name: S.current.c92, indexLetter: 'Y'),Areas(areaCode: 39, name: S.current.c93, indexLetter: 'Y'),Areas(areaCode: 44, name: S.current.c94, indexLetter: 'Y'),Areas(areaCode: 84, name: S.current.c95, indexLetter: 'Y'),Areas(indexLetter: 'Z'),Areas(areaCode: 56, name: S.current.c96, indexLetter: 'Z'),Areas(areaCode: 853, name: S.current.c97, indexLetter: 'Z'),Areas(areaCode: 886, name: S.current.c98, indexLetter: 'Z'),Areas(areaCode: 260, name: S.current.c99, indexLetter: 'Z'),
];

2.给列表添加appbar

import 'package:generated/l10n.dart';
import 'package:widget/custom_appbar.dart';
import 'package:widget/login/login_area_list_wdiget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';class LoginAreaSelectPage extends StatelessWidget {Widget build(BuildContext context) {return Scaffold(appBar: CustomAppBar(backgroundColor: Color(0xff5dc8b6),leading: IconButton(onPressed: () => Navigator.pop(context),icon: Icon(Icons.arrow_back_ios,color: Colors.white,),),title: Text(S.current.xuanzeguojia,style: TextStyle(fontSize: 38.sp,fontWeight: FontWeight.w600,color: Colors.white),),centerTitle: true,),body: LoginAreaListWidget(),);}
}

3.引用

var areaCode;
GestureDetector(onTap: () async {var result = await NavigatorUtil.push(LoginAreaSelectPage());if (result != null) {setState(() {areaCode = result;});}},child: Container(width:100,height:50,color:Colors.red));

相关文章:

flutter选择国家或地区的电话号码区号

1.国家区号列表&#xff08;带字母索引侧边栏&#xff09; import package:generated/l10n.dart; import package:widget/login/area_index_bar_widget.dart; import package:flutter/material.dart; import package:flutter_screenutil/flutter_screenutil.dart;class LoginA…...

信号隔离器在PLC/DCS控制系统的应用

彭姝麟 Acrelpsl 概述: 随着工业自动化程度的不断提高&#xff0c;变频器也得到了非常广泛的应用。作为电力电子器件&#xff0c;变频器中要进行大功率二极管整流&#xff0c;大功率晶体管变压&#xff0c;在输入输出回路产生电流高次谐波&#xff0c;干扰供电系统、负载以及附…...

探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

今天继续介绍一些指令 文章目录 1.cat - 查看文件1.1输出重定向和追加重定向1.2指令echo 2.more 指令3.less - 逐页查看文本文件内容4.head- 显示文件开头部分内容5.tail - 显示文件末尾部分内容5.1输入重定向&#xff08;<&#xff09;5.2管道&#xff08;|&#xff09; 6.…...

简单使用国产数据库—达梦

达梦数据库是一款由中国的达梦软件公司开发的关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它在业界以其高性能、可扩展性和安全性而著称。该系统广泛应用于各种应用程序的数据存储和管理&#xff0c;满足用户对于数据处理和管理的多样化需求。 安装好的达梦数…...

STM32点亮LED灯与蜂鸣器发声

STM32之GPIO GPIO在输出模式时可以控制端口输出高低电平&#xff0c;用以驱动Led蜂鸣器等外设&#xff0c;以及模拟通信协议输出时序等。 输入模式时可以读取端口的高低电平或电压&#xff0c;用于读取按键输入&#xff0c;外接模块电平信号输入&#xff0c;ADC电压采集灯 GP…...

Android UI: 自定义控件:可换行的布局控件

文章目录 继承ViewGroup重写onMeasure方法&#xff1a;计算并设置布局控件的高度重写onLayout方法&#xff1a;计算并设置每个子控件的位置具体的代码实现小结 继承ViewGroup 重写generateLayoutParams&#xff0c;设置子控件的LayoutParams为MarginLayoutParams类型 Overridep…...

Linux(Ubuntu)中安装vscode

①首先去vscode的官网下载.deb文件 网址&#xff1a;https://code.visualstudio.com/docs/?dvlinuxarm64_deb 注&#xff1a;如果linux端无法打开网页下载文件&#xff0c;可以在Windows端下载好用WinSCP传输到Linux。下载前注意下你的系统架构是arm还是amd&#xff0c;系统…...

MQTT Topic通配符

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…...

负载均衡 dubbo

1 自定义负载均衡 dubbo 在 Dubbo 中&#xff0c;用户可以自定义负载均衡策略以满足特定场景的需求。Dubbo 提供了扩展接口 com.alibaba.dubbo.rpc.cluster.LoadBalance 来支持自定义负载均衡算法。 要实现自定义的负载均衡策略&#xff0c;需要完成以下步骤&#xff1a; 创建…...

(含代码)利用NVIDIA Triton加速Stable Diffusion XL推理速度

在 NVIDIA AI 推理平台上使用 Stable Diffusion XL 生成令人惊叹的图像 扩散模型正在改变跨行业的创意工作流程。 这些模型通过去噪扩散技术迭代地将随机噪声塑造成人工智能生成的艺术&#xff0c;从而基于简单的文本或图像输入生成令人惊叹的图像。 这可以应用于许多企业用例&…...

【Spring】学习Spring框架那点小事儿

Spring作者&#xff1a;Rod Johnson Rod Johnson 是一位软件开发人员和作家&#xff0c;他在软件开发领域有着广泛的影响力。他出生于澳大利亚&#xff0c;拥有计算机科学和音乐双学位&#xff08;能写出有优雅的代码一定有艺术细胞&#xff09;。 Rod Johnson 在 2002 年出版…...

L2-035 完全二叉树的层序遍历(Python)

L2-035 完全二叉树的层序遍历 分数 25 全屏浏览 切换布局 作者 陈越 单位 浙江大学 一个二叉树&#xff0c;如果每一个层的结点数都达到最大值&#xff0c;则这个二叉树就是完美二叉树。对于深度为 D 的&#xff0c;有 N 个结点的二叉树&#xff0c;若其结点对应于相同深度…...

get命令使用提交代码

当你想要通过Git提交代码时&#xff0c;以下是一个详细的案例&#xff0c;包括从创建更改到推送到远程仓库的整个过程&#xff1a; 首先&#xff0c;确保你已经在本地仓库目录中进行了需要的更改。 添加更改到暂存区&#xff1a; git add . 这会将所有更改添加到Git的暂存区&…...

矩阵乘积知识

参考&#xff1a;矩阵点乘【矩阵点乘计算公式】_万动力 矩阵乘 矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数&#xff08;column&#xff09;和第二个矩阵的行数&#xff08;row&#xff09;相同时才有意义 [1] 。 哈达码积 别名&#xff1a;矩阵点乘&…...

10、设计模式之外观模式(Facade)

一、什么是外观模式 这个大家一定是经常使用的&#xff0c;外观模式&#xff08;门面模式&#xff09;是一种结构型设计模式。它提供一个统一的接口&#xff0c;用于访问子系统中的一组接口&#xff0c;隐藏了系统的复杂性。最简单的应用就是&#xff0c;当controller层的逻辑处…...

小程序APP为什么要选择游戏盾SDK防护DDOS

小程序APP为什么要选择游戏盾SDK防护DDOS&#xff1f;在移动互联网高速发展的今天&#xff0c;小程序APP已经成为了人们日常生活中不可或缺的一部分。无论是购物、娱乐还是社交&#xff0c;小程序APP都为我们提供了极大的便利。然而&#xff0c;随着小程序APP的普及&#xff0c…...

STL之deque容器代码详解

1 基础概念 功能&#xff1a; 双端数组&#xff0c;可以对头端进行插入删除操作。 deque与vector区别&#xff1a; vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低。 deque相对而言&#xff0c;对头部的插入删除速度回比vector快。 vector访问…...

Liunx文件系统和基础IO

文件系统和基础IO 基础IOc语言基础IO函数当前路径和标准流系统IO系统调用函数重定向FILE文件结构体 在谈缓存区问题理解文件系统初识inode 基础IO c语言基础IO函数 打开与关闭 FILE *fopen(char *filename, const char *mode);选项还可以是 r/w/a 意味着为可读可写打开。 2…...

【Python+Selenium学习系列5】Selenium特殊元素定位之-鼠标悬停操作

前言 Selenium模拟用户在浏览器中的操作&#xff0c;比如点击按钮。在某些场景下&#xff0c;我们需要模拟鼠标悬停的操作&#xff0c;来触发一些隐藏的元素。本文将介绍Python Selenium实现鼠标悬停操作。 鼠标悬停&#xff0c;即当光标与其名称表示的元素重叠时触发的事件&…...

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构

在 HAE 自研阶段&#xff0c;我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性&#xff0c;随着前端技术的高速发展现在已经失去存在的意义&#xff0c;但是在 AUI 阶段探索的新思路新架构&#xff0c;经过大量的业务落地验证&#xff0c;再次推动前端领域…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...