网络编程 day01

news2025/3/4 22:33:41

网络编程 day01

  • 0. 网络编程课程介绍
  • 1. 认识网络
    • 1.网络发展史
    • 2.局域网与广域网
      • 局域网(LAN)
      • 广域网(Wan)
    • 3.光猫
    • 4.路由器
    • 5.交换机与路由器
    • 6.网线
  • 2. IP
    • 1. 基本概念
    • 2. 网络号/主机号(二级划分)
    • 3. IP地址分类
      • 整体分类
      • 特殊地址
    • 4.子网掩码(MASK)
    • 5. 练习
    • 6. 三级划分
  • 3. 网络模型
    • 网络的体系结构
    • OSI模型
    • TCP/IP
    • OSI和TCP/IP的对应关系
    • 常见协议
    • DNS
    • 网络调试命令
      • ping
      • netstat
      • ifconfig
      • 手机调试工具
  • 4. socket
    • 1. socket 发展
    • 2. socket 介绍
    • 3. 为什么需要socket?
    • 4.socket类型
    • 5. 位置
    • 6. TCP/UDP
  • 5. 端口号 port
  • 6. 字节序

0. 网络编程课程介绍

  1. 网络基础:IP、子网掩码、端口号、网络基础模型(OS、TCP/IP)、传输协议
  2. socket:TCP、UDP模型、广播、组播、协议分析、抓包工具的使用、IO多路复用、并发服务器
  3. SQL数据库
  4. TCP实现FTP、电子词典

1. 认识网络

1.网络发展史

ARPnetA (阿帕网) ---- Internet (因特网) ---- 移动互联网 ---- 物联网

TCP/IP
用来检测网络传输中差错的传输控制协议--------TCP
专门负责对不同网络进行互联的互联网协议-----IP

2.局域网与广域网

局域网(LAN)

 局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互相通信。局域网,就像是小区里的道路,分支多,连接了很多栋楼。

广域网(Wan)

 广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

怎么上网?
第一,通过因特网,只需要办一根宽带,就实现了通信,非常方便,现在的宽带价格也比较便宜。
第二,通过广域网专线。
所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。

3.光猫

 光猫是一种类似于基带modem(数字调制解调器)的设备,和基带modem不同的是接入的是光纤专线,是光信号。用于广域网中光电信号的转换和接口协议的转换,接入路由器,是广域网接入。
猫的作用:将光(模拟)信号转化为数字信号
早期:电话线
现在:光纤

4.路由器

路由器:用于连接局域网和外网
 路由器需要区分WAN口和LAN口,WAN口是接外网的(从Modem出来的或者从上一级路由器出来的),LAN口是接内网的,现在路由器都带无线功能,本质上无线接入就是LAN

5.交换机与路由器

交换机工作原理
 交换机:用于局域网内网的数据转发
 路由器:用于连接局域网和外网,也能进行数据转发
现在大部分路由器都有有交换机的功能;
但是交换机没有IP分配和IP寻址的功能,所以交换机没有路由器的功能。

6.网线

2. IP

1. 基本概念

  1. IP地址是Internet中主机的标识
  2. Internet中的主机要与别的机器通信必须具有一个IP地址
  3. IP地址为32位(IPv4 ,232)或者128位(IPv6,2128个)
    NAT:公网转私网、私网转公网
  4. IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。

NAT设备(网络地址转换)
 功能:NAT设备的主要功能是将内部私有IP地址转换为公共IP地址,或反向操作,以便在局域网和外部网络(如互联网)之间进行通信。
 工作原理:
当局域网内的设备访问互联网时,NAT设备记录设备的内部IP地址和源端口,并用公共IP地址替换。
响应的流量也会经过NAT设备,NAT通过记录的映射关系将数据包发送回正确的内部设备。
 作用对象:NAT设备用于管理与外部网络(如互联网)的通信,通常作为路由器的一部分。

DHCP服务器(动态主机配置协议)
 功能:DHCP服务器的主要任务是自动分配IP地址、子网掩码、默认网关和DNS服务器ip等网络配置给网络中的设备(客户端),简化网络管理。
 工作原理:
当一个设备(如电脑或手机)首次连接到网络时,它会发送一个DHCP请求。
DHCP服务器接收到请求后,从预设的IP地址池中分配一个可用的IP地址,并返回给客户端。
 作用对象:DHCP服务器专注于局域网内部的IP地址管理。

2. 网络号/主机号(二级划分)

IP地址 = 网络号+主机号
网络号:表示是否在同一个网段内(局域网)
主机号:表示在网段内的ID,同一网段内不重复

3. IP地址分类

整体分类

在这里插入图片描述
 A类:(0.0.0.0 - 127.255.255.255)(默认子网掩码:255.0.0.0)
 第一个字节为网络号,后三个字节为主机号(一个字节占8位)。该类IP地址的最前面为“0”,因为网络号是8位,所以地址的网络号取值于 0~127之间(0000 0000)(0111 1111)。一般用于大型网络,主机号取值在0 - 2 ^24之间。

 B类:(128.0.0.0 - 191.255.255.255)(默认子网掩码:255.255.0.0)
 前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。

 C类:(192.0.0.0 - 223.255.255.255)(子网掩码:255.255.255.0)
 前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络(一般教室使用的是C类)。

 D类:(224.0.0.0 - 239.255.255.255),多播地址。
 该类IP地址的最前面为“1110”,所以地址的范围取值于224~239之间。一般用于组播用户,组播通信。

 E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的取值于240~247之间。一般是一些保密单位用得到,平时基本不会用到

特殊地址

0.0.0.0
 在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。
127.0.0.1
 回环地址/环路地址,所有发往该类地址的数据包都应该被loop back。
网络地址
 每一个网段主机号为0的地址; 如:192.168.50.0。它是网络中的一个特殊地址,不能被分配给任何具体的主机。
广播地址
 主机号最大的地址是该网段的广播地址 如:192.168.50.255。如: b类IP 广播地址为: 130.223.255.255
全网广播地址 : 255.255.255.255, 该地址不能随便用,会影响这个网络

A类:1.0.0.1~126.255.255.254
B类:128.0.0.1~191.255.255.254
C类:192.0.0.1~223.255.255.254
D类(组播地址):224.0.0.1~~239.255.255.254

4.子网掩码(MASK)

  1. 子网掩码:是一个32位的整数,作用是将某一个IP划分成网络地址和主机地址;
  2. 子网掩码长度是和IP地址长度完全一样;
  3. 网络号全为1,主机号全为0;
  4. 公式:网络地址 = IP & MASK
    主机地址 = IP& ~MASK

5. 练习

练习一:B类地址的子网掩码怎么写?
:255.255.0.0
练习二:B类地址,同一网段最多可以连接多少个主机?
:216 - 2 ;
 网络地址和广播地址(.1一般是路由器登陆界面)
练习三:已知一个子网掩码号为255.255.255.192,问:最多可以连接多少台主机?
:26 - 2;
 子网掩码:网络号全为1,主机号全为0;192 : 1100 0000;主机号只有6位;主机数为26-2台
练习四:一个IP地址为192.168.3.183,计算其网络号与主机号
 网络号:192.168.3.0
 主机号:0.0.0.183
练习五: 如果有800台电脑, 在不浪费ip情况下, 选用哪个网段?
:B类;C类同一网段只有28个,A类在同一网段会有224个主机

6. 三级划分

作用:重新划分网络号和主机号, 也就是重新组网 , 从而提高资源利用率
二级划分 IP :IP地址= 网络号 + 主机号
三级划分 IP :IP地址= 网络号 + 子网号 + 主机号
练习一:某公司有四个部门:行政、研发1、研发2、营销,每个部门各50台计算机接入公司局域网,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?(4个部门之间不能通信)
:C类(254台主机)主机号:0000 0000
 行政:0000 0000 - 0011 1111=》
 研发1:0100 0000 - 0111 1111=》
 研发2:1000 0000 - 1011 1111=》
 营销:1100 0000 - 1111 1111=》
 子网掩码:255.255.255.1100 0000 =》255.255.255.192
练习二:有两台电脑主机,在最少浪费IP地址的情况下.将172.16.14.4与172.16.13.2划归为同一网段,则子网掩码应该设置为?
:255.255.252.0
解析

  1. 同一网段内主机号不同,网络号相同
  2. 从二级划分中主机号中划分出相同部分作为子网号,子网号与网络号合称网络号

 14.4:172.16.0000 1110.0000 0100
 13.2:172.16.0000 1101.0000 0010
 子网号:172.16.0000 11
 主机号:10.0000 0100 和 01.0000 0010
 子网掩码:255.255.1111 1100.0000 0000==》255.255.252.0

3. 网络模型

网络的体系结构

 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
网络体系结构即指网络的层次结构和每层所使用协议的集合
 两类非常重要的体系结构:OSI与TCP/IP

OSI模型

OSI模型

TCP/IP

在这里插入图片描述
应用层应用协议和应用程序的集合
传输层决定数据交给机器的哪个任务(进程)去处理,通过端口寻址
进程一定有进程号,不一定有端口号,端口号只有在进行网络通信才有

网络层提供设备到设备的传输,可以理解为通过IP寻址机器。
网络接口和物理层屏蔽硬件差异(驱动),向上层提供统一的操作接口。

OSI和TCP/IP的对应关系

在这里插入图片描述

常见协议

网络接口和物理层:
 ppp:拨号协议(老式电话线上网方式)
 Ethernet:是一种常见的局域网技术,使用MAC地址进行帧的传输和接收
 Wi-Fi:用于无线局域网的数据传输,通常基于IEEE 802.11标准
网络层:
 IP(IPV4/IPV6):网间互连的协议
 ICMP:网络控制管理协议,ping命令使用
 IGMP:网络分组管理协议,广播和组播使用
 ARP:地址解析协议 IP–>MAC
 RARP:反向地址转换协议 MAC–>IP
  (ARP;RARP在网络接口和物理层工作)
传输层:
 TCP:传输控制协议
 UDP:用户数据报协议
应用层:
 SSH:加密协议
 telnet:远程登录协议
 FTP:文件传输协议
 HTTP:超文本传输协议
 DNS:域名解析协议 (将人类易于记忆的域名(如www.baidu.com)转换为计算机使用的IP地址(如192.0.2.1))
 SMTP/POP3:邮件传输协议

DNS

 由于使用IP地址来指定计算机不方便人们记忆,且输入时候容易出错,用字符标识网络中计算机名称方法。
 域名(Domian Name )
 域名服务器(Domain Name server):用来处理IP地址和域名之间的转换。
 域名系统(Domain Name System,DNS):域名翻译成IP地址的软件DNS
域名结构
 例如域名 www.baidu.com.cn 从右向左看
 cn为高级域名,也叫一级域名,它通常分配给主干节点,取值为国家名,cn代表中国
 com为网络名,属于二级域名,它通常表示组织或部门
中国互联网二级域名共40个,edu表示教育部门,com表示商业部门,gov表示政府,mil军队等等
 baidu为机构名,在此为三级域名,表示百度
 www:万维网world wide web,也叫环球信息网,是一种特殊的信息结构框架。
工作流程
在这里插入图片描述

网络调试命令

ping

测试网络连通性(ICMP)
作为平时网络连通检测使用最多的命令,它的作用主要为:
● 用来检测网络的连通情况和分析网络速度;
● 根据域名得到服务器IP;
● 根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。
在这里插入图片描述
字节:数据包大小
时间:响应时间:时间越小证明链接地址的速度越快
TTL:time to live:从源到目的,每经过一个路由器,TTL减一。当TTL = 0 时,数据包丢失

netstat

netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP相关的统计数据,一般用于检验本机各端口的网络连接情况。

netstat -a //查看所有网络状态
netstat -at //查看tcp所有网络状态
netstat -au //查看udp所有网络状态
netstat -l //查看处于监听状态的链接
netstat -lt //查看处于监听状态的链接tcp
netstat -lu //查看处于监听状态的链接udp
netstat -lx //查看处于监听状态的链接unix

ifconfig

查看网络接口信息
在这里插入图片描述
ens33:网卡名称 en:Ethernet s:表示热插拔槽上的设备 33:插槽编号
lo:回环网卡

格式含义
ifconfig 具体网卡名称只显示具体网卡的详细信息(无论是否启用)
ifconfig -a表示显示所有网卡包括没有启动的网卡
ifconfig 网卡名称up/down 表示开启或关闭网卡
ifconfig 网络接口 IP地址[/子网掩码长度]新建临时IP地址(添加 一块虚拟网卡)
ifconfig -s查看通讯情况

手机调试工具

全能调试
在这里插入图片描述

4. socket

1. socket 发展

  1. 1982 - Berkeley Software Distributions 操作系统引入了socket作为本地进程之间通信的接口
  2. 1986 - Berkeley 扩展了socket 接口,使之支持UNIX 下的TCP/IP 通信
  3. 现在很多应用 (FTP, Telnet) 都依赖这一接口

2. socket 介绍

  1. 是一个编程接口,函数
  2. 是一种特殊的文件描述符 (everything in Unix is a file)
  3. socket是一种通信机制,并不仅限于TCP/IP协议
  4. 面向连接 (Transmission Control Protocol - TCP/IP)
  5. 无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)

3. 为什么需要socket?

  1. 普通的I/O操作过程 :打开文件->读/写操作->关闭文件
  2. TCP/IP协议被集成到操作系统的内核中,引入了新型的“I/O”操作:
    进行网络通信的两个进程在不同的机器上,如何连接?
    网络协议具有多样性,如何进行统一的操作?
    需要一种通用的网络编程接口:Socket

4.socket类型

流式套接字(SOCK_STREAM) —> TCP
提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。 内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流。
数据报套接字(SOCK_DGRAM) --> UDP
提供无连接服务。 数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送可能乱序接收。
原始套接字(SOCK_RAW)
 可以对较低层次协议如IP、ICMP直接访问,还有一些ping命令

5. 位置

在这里插入图片描述

6. TCP/UDP

相同点:都存在于传输层,全双工通信

TCP:全双工通信、面向连接、可靠
 TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。
高可靠原因
 1. 三次握手、四次挥手
 2. 序列号和应答机制
 3. 超时,错误重传机制
 4. 拥塞控制、流量控制(滑动窗口)

适用场景
 适合于对传输质量要求较高的通信
 在需要可靠数据传输的场合,通常使用TCP协议
 MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

UDP:全双工通信、面向无连接、不可靠
 UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
适用场景
 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
 适合于广播/组播式通信中。
 MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

5. 端口号 port

 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分
 TCP端口号与UDP端口号独立(UDP port为8888,TCP port也可为8888 )
 端口号一般由IANA (Internet Assigned Numbers Authority) 管理
 端口用两个字节来表示

众所周知端口(被占用:1 - 1023(1 - 255之间为众所周知端口,256 - 1023端口通常由UNIX系统占用))
已登记端口:1024 - 49151(可用来建立与其它主机的会话)
动态或私有端口:49152 - 65535 固定某些服务使用

6. 字节序

字节序: 不同类型的cpu主机,内存存储大于一个字节类型的数据在内存中的存放顺序。
小端序(little-endian)= 低序字节存储在低地址 = 主机字节序
大端序(big-endian)= 高序字节存储在低地址 = 网络字节序
网络中传输的数据必须使用网络字节序,即大端字节序
终端显示的数据必须是主机字节序,即小端字节序
 网络传输中,需要将每个主机的主机字节序(CPU决定),转换为网络中统一顺序的网络字节序,才能供双方主机去识别。
 只需要转换IP和port就可以,不需要转换传输的数据包的字节序,因为IP和port为 4个字节和2个字节, 而数据报一般都为char类型, 占一个字节,根据字节序的性质,内存存储大于一个字节类型的数据在内存中的存放顺序,所以char类型并不具有字节序的概念。
练习:写一个程序,判断当前主机的字节序?

union en
{
    int in;
    char ch;
};
int main()
{
    int myend = 0x12345678;
    // 指针
    char *endp = (char *)&myend;
    printf("%#x\n", *endp);
    // 数据类型
    char endch = (char)myend;
    printf("%#x\n", endch);
    // 共用体
    union en endun;
    endun.in = myend;
    endun.ch = (char)endun.in;
    printf("%#x", endun.ch);
}

int 类型的myend占满四个字节,强转成char类型的数据时会按照主机的大小端类型存储。如果强转之后打印出来的是“78”,说明低位字节存储在低地址位,是小端存储;如果强转之后打印出来的是“12”,说明高位字节存储在低地址位,是大端存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2309693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode通过ssh远程连接(linux系统)不能跳转问题

1.问题描述 unbantu中的vscode能够通过函数跳转到函数定义,而windows通过ssh连接unbantu的vscode却无法跳转 2.原因: 主要原因是这里缺少插件,这里是unbantu给主机的服务器,与ubantu本地vscode插件相互独立,能否跳转…

unity pico开发 五 UI交互

文章目录 添加画布添加交互组件取消传送射线对UI的控制解决按扳机键会传送的冲突按下按键呼出菜单,并让菜单出现在头的前方 添加画布 创建一个新画布,添加一个Button,将画布改为world space,然后缩放改为0.001,调整到…

软开经验总结

文章目录 软开经验总结一、二次开发时候操作步骤二、logger的作用!!!三、git使用 软开经验总结 一、二次开发时候操作步骤 改 SDK 和 language level改 maven 配置改数据库 注意Mysql 版本 差别是否过大!!&#xff0…

QT 中的元对象系统(三):QObject深入理解

目录 1.简介 2.特性 2.1.对象树与内存管理 2.2.信号与槽机制 2.3.事件处理 2.4.属性系统 2.4.1.Q_PROPERTY配置的属性 2.4.2.动态属性 2.4.3.实现原理 2.5.国际化支持 2.6. 定时器支持 3.类设计(q和d指针) 4.总结 1.简介 QObject这个 class 是 QT 对象模型的核心&…

二、QT和驱动模块实现智能家居-----问题汇总1

1、文件地址改变后必须在QT下更改地址 2、指定了QT内Kits下的Sysroot头文件地址,但是还是找不到头文件: 3、提示无法执行QT程序:先干掉之前的QT程序 ps //查看程序PIDkill -9 PID 4、无法执行QT程序 1)未设置环境变量 …

Golang的数据库分库分表

# Golang的数据库分库分表 什么是数据库分库分表 数据库分库分表是指将单一的数据库拆分成多个库,每个库中包含多张表,以提高数据库的性能和可伸缩性。通常在大型应用中,单一的数据库往往无法满足高并发和海量数据的需求,因此需要…

NModbus 连接到Modbus服务器(Modbus TCP)

1、在项目中通过NuGet添加NModbus,在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…

基于vue3和flask开发的前后端管理系统(一):项目启动准备

准备工作 我们需要准备以下工具 vue3:构建前端 tailwind css:样式库vite:快速构建vue项目pinia :vue3 的事件管理器 flask:后端代码Mysql:数据库 heidisql:数据库图形化界面 vscode&#xff1…

单例模式(线程案例)

单例模式可以分为两种:1.饿汉模式 2.懒汉模式 一.饿汉模式 //饿汉模式👇 class MySingleTon{//因为这是一个静态成员变量,在类加载的时候,就创建了private static MySingleTon mySingleTon new MySingleTon();//创建一个静…

通过多线程分别获取高分辨率和低分辨率的H264码流

目录 一.RV1126 VI采集摄像头数据并同时获取高分辨率码流和低分辨率码流流程 ​编辑 1.1初始化VI模块: 1.2初始化RGA模块: 1.3初始化高分辨率VENC编码器、 低分辨率VENC编码器: 1.4 VI绑定高分辨率VENC编码器,VI绑定RGA模块…

智慧农业中光谱相机对土壤成分的无损检测应用‌

可浏览之前发布的一篇文章:光谱相机在农业中的具体应用案例 一、土壤成分定量分析 ‌养分检测‌ 光谱相机通过捕捉土壤反射的特定波长光线,可精准检测氮、磷、钾等主要养分含量,以及有机质和水分比例。例如,不同养分对近红外波段…

DNS 详细过程 与 ICMP

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 DNS (Domain Name System) 快速了解🦋 DNS 背景🦋 域名简介🦋 真实地址查询 —— DNS🎀 域名的层级关系&am…

学到什么记什么(25.3.3)

Upload-labs 今日重新做了一下文件上传漏洞&#xff0c;这里第一题之前采用直接抓包改后缀名.jpg为.php&#xff0c;再写入一句话<?php phpinfo();?>然后放行&#xff0c;得到图片地址&#xff08;可复制&#xff09;&#xff0c;本来直接访问图片地址即可得到敏感信息…

阿里云服务器部署项目笔记 实操 centos7.9

阿里云服务器部署项目笔记 实操 centos7.9 springboot vue elementUImysqlredis 相关的redis,mysql,nginx镜像,jdk 通过网盘分享的文件&#xff1a;docker镜像 链接: https://pan.baidu.com/s/15VwcWBP4Jy07xADuvylgQw?pwdm2g9 提取码: m2g9 配置环境 连接云服务器 安装…

win32汇编环境,窗口程序中使控件子类化的示例一

;运行效果 ;win32汇编环境,窗口程序中使编辑框控件子类化的示例一 ;窗口子类化&#xff0c;就是把某种控件&#xff0c;自已再打造一遍&#xff0c;加入自已的功能。比如弄个特殊形状的按钮&#xff0c;或只能输入特殊字符的编辑框 ;当然&#xff0c;一般来说&#xff0c;这都是…

多镜头视频生成、机器人抓取、扩散模型个性化 | Big Model weekly第58期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot 本文介绍了一种名为GLM-4-Voice的智能且类人化的端到端语音聊天机器人。它支持中文和英文&#xff0c;能够进行实时语音对话&a…

第十四届蓝桥杯:(二分算法)字串简写

这道题我们的做法是开两个vector&#xff0c;分别把a和b字符的下标存进去&#xff0c;然后遍历a字符&#xff0c;我们要求长度必须大于等于k&#xff0c;我们可以画个图&#xff0c;也就是说b的下标减a的下标必须大于等于k-1 也就是b的下标必须大于等于a的下标k-1 我们用二分找…

制服小程序的“滑手”:禁用页面左右滑动全攻略

哈哈&#xff0c;看来你已经很聪明地发现了小程序中左右滑动的“顽皮”行为&#xff01;&#x1f604; 没错&#xff0c;我们可以通过设置 disableScroll 属性来“管教”它&#xff0c;同时结合 CSS 样式让页面既禁得住横向“乱跑”&#xff0c;又能顺畅地上下滚动。你的方案已…

webstorm的Live Edit插件配合chrome扩展程序JetBrains IDE Support实现实时预览html效果

前言 我们平时在前端网页修改好代码要点击刷新再去看修改的效果&#xff0c;这样比较麻烦&#xff0c;那么很多软件都提供了实时预览的功能&#xff0c;我们一边编辑代码一边可以看到效果。下面说的是webstorm。 1 Live Edit 首先我们需要在webstorm的settings里安装插件Live …

02 HarmonyOS Next仪表盘案例详解(一):基础篇

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 文章目录 1. 项目概述2. 技术架构2.1 文件结构2.2 ArkTS 语言特性装饰器的使用 3. 数据结构设计3.1 接口定义3.2 数据初始化 4. 生命周期与页面路由…