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

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch




在这里插入图片描述



  • ping:检测网络联通
    • 1. ping 的基本功能
    • 2. ping 的工作原理
    • 3. ping 的常见用法
    • 4. ping 的输出解释
    • 5. ping 的应用场景
    • 6. 注意事项
  • netstat:查看网络状态
    • 1. netstat 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出字段解释
    • 5. netstat 的替代工具
    • 6. 注意事项
  • xargs:将数据转换为其他命令的命令行参数
    • 1. xargs 的基本功能
    • 2. 常见用法
    • 3. 示例
  • pidof:根据名字查找并返回进程PID
    • 1. pidof 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出解释
    • 5. 使用场景
    • 6. 注意事项
  • watch:动态刷新的数字监控
    • 1. watch 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出解释
    • 5. 使用场景
    • 6. 注意事项



ping:检测网络联通

ping 是一种常用的网络诊断工具,用于测试主机之间的连通性以及测量网络延迟。通过发送 ICMP(Internet Control Message Protocol)回声请求(Echo Request)消息到目标主机,并等待其返回 ICMP 回声应答(Echo Reply),可以判断目标主机是否可达,并评估网络性能。

以下是关于 ping 命令的详细讲解:




1. ping 的基本功能

  • 测试连通性:验证本地主机与目标主机之间的网络连接是否正常。
  • 测量延迟:计算从发送请求到接收响应的时间(通常以毫秒为单位),反映网络的速度和稳定性。
  • 检测丢包率:统计在一定时间内发送的请求中有多少未收到响应,从而判断网络质量。



2. ping 的工作原理

  1. 发送 ICMP 请求

    • 本地主机向目标主机发送一个 ICMP Echo Request 消息。
    • 这个消息包含一个唯一的标识符和序列号,用于区分不同的请求。
  2. 接收 ICMP 应答

    • 如果目标主机正常运行且网络畅通,它会返回一个 ICMP Echo Reply 消息。
    • 本地主机会记录从发送请求到接收应答的时间差,即往返时间(RTT,Round-Trip Time)。
  3. 统计结果

    • 根据多次请求的结果,计算平均延迟、最大延迟、最小延迟以及丢包率。



3. ping 的常见用法

(1) 基本语法
ping [选项] 目标地址
  • 目标地址:可以是域名(如 www.example.com)或IP地址(如 192.168.1.1)。
    可以输入自己服务器的域名或虚拟机的IP地址


(2) 常见选项
选项描述
-c <次数>指定发送的ICMP请求次数(例如:ping -c 4 www.example.com)。
-i <间隔>设置两次请求之间的时间间隔(秒)。
-t <TTL>设置数据包的生存时间(Time To Live,TTL)。
-s <大小>设置发送的数据包大小(字节)。
-W <超时>设置等待响应的超时时间(秒)。


(3) 示例
  • 发送4次请求

    ping -c 4 www.example.com
    
  • 指定数据包大小为1024字节

    ping -s 1024 www.example.com
    
  • 设置每次请求间隔为2秒

    ping -i 2 www.example.com
    



4. ping 的输出解释

以下是一个典型的 ping 输出示例:

PING www.example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=12.3 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.8 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=12.1 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=11.9 ms--- www.example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 11.800/12.025/12.300/0.200 ms

字段说明
  • PING

    • 显示目标地址及其解析后的IP地址。
    • 数据包大小默认为56字节(加上ICMP头部后总共64字节)。
  • 每次请求的响应

    • 64 bytes:表示接收到的回显应答数据包大小。
    • icmp_seq=<序号>:表示该数据包的序列号。
    • ttl=<值>:表示数据包的生存时间(TTL,Time To Live),反映了路由跳数。
    • time=<值>:表示往返时间(RTT,Round-Trip Time),单位为毫秒。
  • 统计信息

    • packets transmitted:发送的总数据包数。
    • received:接收到的总数据包数。
    • packet loss:丢包率(百分比)。
    • time:整个测试过程的持续时间。
    • rtt min/avg/max/mdev:往返时间的最小值、平均值、最大值以及标准偏差。



5. ping 的应用场景

(1) 测试网络连通性
  • 使用 ping 可以快速检查本地主机与目标主机之间的网络是否连通。
  • 如果无法收到任何响应,可能是因为目标主机不可达、网络中断或目标主机禁用了ICMP响应。
(2) 测量网络延迟
  • 通过观察 ping 输出中的 time 值,可以评估网络的速度和稳定性。
  • 较低的延迟通常意味着更好的网络性能。
(3) 检测丢包率
  • 如果部分请求没有收到响应,可能是网络拥塞或不稳定。
  • 高丢包率可能表明网络质量较差。
(4) 调试网络问题
  • 结合其他工具(如 traceroutemtr),可以定位网络故障的具体位置。



6. 注意事项

(1) 目标主机可能禁用ICMP
  • 某些主机或防火墙可能会禁用ICMP协议,导致即使网络正常也无法收到响应。
(2) 网络延迟的影响因素
  • 网络延迟可能受到多种因素的影响,包括物理距离、路由器数量、带宽限制等。
(3) 数据包大小的影响
  • 发送较大的数据包可能会暴露网络中的带宽瓶颈或MTU(Maximum Transmission Unit)问题。
(4) 不同平台的实现差异
  • Windows 和 Linux 的 ping 命令在默认行为上可能略有不同(例如,默认数据包大小)。



netstat:查看网络状态

我们在写一些网络服务时,如写 udp Server / tcp Server ,我们有时需要查看这些网络服务是否启动以及其他状态信息,如果直接使用 ps 命令,只能查看到一些偏向进程方面的,因此我们推荐 netstat

netstat 是一个用于显示网络连接、路由表、接口统计信息、伪装连接和多播成员的命令行工具。它是网络管理员和开发人员常用的工具之一,可以帮助诊断网络问题、监控网络状态以及分析系统上的活动连接。

以下是关于 netstat 的详细介绍:



1. netstat 的基本功能

netstat 提供了以下主要功能:

  • 显示活动的网络连接:列出当前系统的TCP/UDP连接。
  • 显示路由表信息:查看系统的IP路由表。
  • 显示接口统计信息:显示网络接口的流量统计信息。
  • 显示监听端口:列出正在监听的端口及其对应的服务或进程。
  • 显示网络协议统计信息:提供TCP、UDP、ICMP等协议的统计数据。

在这里插入图片描述




2. 常见用法

(1) 基本语法
netstat [选项]
(2) 常见选项

注意:在使用时,这些选项的前后顺序无所谓,没有规定

选项描述
-aall,显示所有连接和侦听端口(包括TCP和UDP)。
-ttcp,仅显示TCP连接。
-uudp,仅显示UDP连接。
-nnumber,以数字形式显示地址和端口号(不进行DNS解析)。
-l仅显示处于监听状态的连接。
-pprocess,显示与每个连接关联的进程ID(需要root权限)。
-r显示内核路由表。
-i显示网络接口的统计信息。
-s显示每个协议的统计信息(如TCP、UDP等)。



2. 常见用法

(1) 显示所有连接和侦听端口
netstat -a
  • 输出中会包含所有的TCP和UDP连接,包括已建立的连接和正在监听的端口。
(2) 显示所有TCP连接
netstat -at
  • 只显示TCP协议相关的连接。
(3) 显示所有UDP连接
netstat -au
  • 只显示UDP协议相关的连接。
(4) 显示监听端口
netstat -ln
  • 使用 -l 选项只显示处于监听状态的端口,-n 选项避免DNS解析,加快输出速度。
(5) 显示与进程关联的连接
sudo netstat -ntp
  • -n:以数字形式显示地址和端口号。
  • -t:仅显示TCP连接。
  • -p:显示与每个连接关联的进程ID和名称。
  • 需要使用 sudo 提升权限,因为普通用户无法访问某些进程信息。
(6) 显示路由表
netstat -r
  • 输出系统的IP路由表,类似于 routeip route 命令。
(7) 显示网络接口统计信息
netstat -i
  • 列出所有网络接口的流量统计信息,包括接收和发送的数据包数量、错误数等。
(8) 显示协议统计信息
netstat -s
  • 提供TCP、UDP、ICMP等协议的详细统计信息,例如已建立的连接数、丢弃的数据包数等。



3. 示例

以下是一个典型的 netstat 输出示例:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1235/cupsd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1236/dhclient


4. 输出字段解释

  • Proto:协议类型(TCP或UDP)。
  • Recv-Q:接收队列中的数据包数量。
  • Send-Q:发送队列中的数据包数量。
  • Local Address:本地地址和端口。
  • Foreign Address:远程地址和端口。
  • State:连接状态(仅适用于TCP,例如 LISTENESTABLISHED 等)。
  • PID/Program name:与该连接关联的进程ID和程序名称(需使用 -p 选项)。



5. netstat 的替代工具

在现代Linux系统中,netstat 已逐渐被更高效的工具(如 ssip)取代:

  • ss:功能类似 netstat,但性能更高,推荐使用。
  • ip:用于管理和显示网络接口、路由表等信息。

例如,使用 ss 查看监听端口:

ss -tnlp



6. 注意事项

(1) 权限问题
  • 某些选项(如 -p)需要 root 权限才能查看进程信息。

    比如下图,有些条目缺失了一些信息,只有我们自己启动的 ./server

    在这里插入图片描述

  • 如果没有权限,可以尝试使用 sudo 提升权限。

    如下图,使用 sudo 提权后,所有信息都展示出来了

    在这里插入图片描述

(2) 性能问题
  • 在高并发环境下,netstat 的性能可能不如 ss,因为它需要读取大量的内核数据。
(3) 替代工具
  • 在较新的 Linux 发行版中,netstat 可能已被废弃或不再默认安装。可以使用 ssip 命令作为替代。



xargs:将数据转换为其他命令的命令行参数

xargs 是一个功能强大的命令行工具,用于从标准输入(stdin)读取数据,并将其作为参数传递给其他命令执行。它可以帮助用户将管道或文件中的数据转换为命令行参数,从而实现批量处理任务。

以下是关于 xargs 的详细讲解:


1. xargs 的基本功能

  • 从标准输入读取数据xargs 从标准输入中读取数据,通常是通过管道或其他命令的输出。
  • 构建命令行参数:将读取到的数据转换为命令行参数,并传递给指定的命令。
  • 批量执行命令:支持对多个输入项逐一或分批执行命令。



2. 常见用法

(1) 基本语法
command | xargs [选项] [命令]
  • command:生成输入数据的命令。
  • xargs:将输入数据转换为命令行参数。
  • [选项]:控制 xargs 的行为。
  • [命令]:接收参数并执行的命令。



3. 示例

(1) 基本用法
echo "file1 file2 file3" | xargs ls
  • file1 file2 file3 作为参数传递给 ls 命令,等价于:

    ls file1 file2 file3
    



pidof:根据名字查找并返回进程PID

pidof 是一个用于查找正在运行的进程的 PID(Process ID)的命令行工具。它根据指定的进程名称返回与该名称匹配的进程的 PID 列表。pidof 是系统管理员和开发人员常用的工具之一,尤其在需要动态获取某个服务或程序的 PID 时非常方便。

以下是关于 pidof 的详细讲解:


1. pidof 的基本功能

  • 查找进程 ID:根据进程名称返回对应的 PID。
  • 支持多个匹配项:如果存在多个同名进程,pidof 会返回所有匹配的 PID。
  • 简单易用:语法简单,适合脚本中使用。



2. 常见用法

(1) 基本语法
pidof [选项] 进程名称
(2) 常见选项
选项描述
-s只返回一个 PID(即使有多个匹配的进程)。
-x匹配脚本或可执行文件(不仅限于二进制程序)。
-o PID,...排除指定的 PID 或特殊符号(如 $$ 表示当前 shell 的 PID)。



3. 示例

(1) 查找特定进程的 PID
pidof sshd
  • 如果 sshd 正在运行,输出可能是:

    1234 1235
    
  • 这表示有两个 sshd 进程正在运行,其 PID 分别为 12341235

(2) 只返回一个 PID
pidof -s sshd
  • 即使有多个 sshd 进程,也只返回其中一个 PID,例如:

    1234
    
(3) 匹配脚本或可执行文件
pidof -x myscript.sh
  • 如果 myscript.sh 是一个正在运行的脚本,pidof 会返回其 PID。
(4) 排除特定 PID
pidof -o $$ bash
  • $$ 表示当前 shell 的 PID。此命令会列出所有正在运行的 bash 进程的 PID,但排除当前 shell 的 PID。



4. 输出解释

pidof 的输出是一个由空格分隔的 PID 列表。如果没有找到匹配的进程,则不会有任何输出。

例如:

$ pidof nginx
1234 1235 1236

这表示有三个 nginx 进程正在运行,其 PID 分别为 123412351236




5. 使用场景

(1) 动态获取 PID

在编写脚本时,可以使用 pidof 获取某个服务的 PID 并进行进一步操作。例如:

PID=$(pidof mysqld)
if [ -n "$PID" ]; thenecho "MySQL is running with PID $PID"
elseecho "MySQL is not running"
fi
(2) 结合其他工具

可以将 pidof 的输出与其他工具结合使用。例如:

  • 使用 kill 发送信号:有两种写法

    // 方法一:
    kill $(pidof nginx)// 方法二: 通过管道
    pidof nginx | xargs kill -9
    
  • 使用 ps 获取更多进程信息:

    ps -p $(pidof sshd)
    
(3) 监控进程状态

通过定期检查某个进程是否存在,可以实现简单的进程监控功能。




6. 注意事项

**(1) 进程名称匹配 **
  • pidof 根据进程名称进行匹配,因此可能会出现误匹配的情况。例如,pidof http 可能会匹配到 httpd 或其他包含 http 的进程。
  • 如果需要更精确的匹配,建议结合 pgrepps 使用。
(2) 权限问题
  • 如果当前用户没有权限访问某些进程的信息,pidof 可能无法返回这些进程的 PID。
(3) 替代工具
  • 在某些情况下,pgrep 是一个更强大的替代工具,因为它可以根据更多的条件(如用户、命令行参数等)进行过滤。



watch:动态刷新的数字监控

watch 是一个非常实用的命令行工具,用于定期执行其他命令并将输出显示在终端中。它可以帮助用户实时监控系统状态、进程运行情况或其他动态变化的信息。通过 watch,你可以以固定的时间间隔重复执行某个命令,并观察其结果的变化。

以下是关于 watch 的详细讲解:




1. watch 的基本功能

  • 定期执行命令:按照指定的时间间隔(默认为2秒)重复执行某个命令。
  • 高亮变化:可以高亮显示输出中发生变化的部分,便于快速发现差异。
  • 全屏显示:将命令的输出完整地显示在终端中,类似于一个动态更新的窗口。



2. 常见用法

(1) 基本语法
watch [选项] 命令
(2) 常见选项
选项描述
-n <秒>设置刷新时间间隔(默认为2秒)。
-d--difference高亮显示输出中的变化部分。
-t--no-title禁用顶部标题栏(显示命令和时间信息)。
-b--beep如果输出发生变化,则发出蜂鸣声。
-g--chgexit当输出发生变化时立即退出。



3. 示例

(1) 默认使用
watch df -h
  • 每隔2秒执行一次 df -h 命令,显示磁盘使用情况。
(2) 自定义刷新时间
watch -n 5 free -m
  • 每隔5秒执行一次 free -m 命令,显示内存使用情况。
(3) 高亮显示变化
watch -d uptime
  • 每隔2秒执行一次 uptime 命令,并高亮显示输出中发生变化的部分。
(4) 禁用标题栏
watch -t date
  • 每隔2秒执行一次 date 命令,并禁用顶部标题栏。
(5) 输出变化时发出蜂鸣声
watch -b ls
  • 每隔2秒执行一次 ls 命令,如果目录内容发生变化,则发出蜂鸣声。
(6) 输出变化时立即退出
watch -g ps aux | grep sshd
  • 每隔2秒检查是否有 sshd 进程,如果输出发生变化(例如进程启动或停止),则立即退出。



4. 输出解释

watch 的输出通常包括以下部分:

  • 顶部标题栏:显示命令、当前时间以及刷新间隔。
  • 命令输出:每次执行命令的输出结果。
  • 高亮部分:如果启用了 -d 选项,输出中发生变化的部分会被高亮显示。

例如:

Every 2.0s: df -h                                                                                         Tue Feb 28 10:00:00 2023Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  2.1M  1.6G   1% /run
/dev/sda1        50G   12G   36G  25% /
...



5. 使用场景

(1) 监控系统资源
  • 使用 watch 可以方便地监控系统资源的使用情况,例如:
    • 内存使用:watch free -m
    • CPU负载:watch top
    • 磁盘空间:watch df -h
(2) 监控网络连接
  • 查看活动的网络连接:watch netstat -tuln
  • 查看路由表变化:watch route -n
(3) 监控文件或目录变化
  • 查看某个目录的内容变化:watch ls -l /path/to/directory
  • 查看日志文件的变化:watch tail -n 10 /var/log/syslog
(4) 监控服务状态
  • 查看某个服务的状态:watch systemctl status sshd
  • 查看某个端口的监听状态:watch lsof -i :80



6. 注意事项

(1) 终止 watch
  • 按下 Ctrl+C 可以终止 watch 的运行。
(2) 命令输出的限制
  • watch 的输出会根据终端窗口的大小自动调整,因此不适合处理非常大的输出。
(3) 高亮功能的限制
  • -d 选项只能高亮显示文本内容的变化,无法检测到格式或颜色的变化。
(4) 替代工具
  • 如果需要更复杂的监控功能,可以考虑使用 while 循环结合 sleep,例如:

    while true; do clear; df -h; sleep 5; done
    

相关文章:

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch

ping&#xff1a;检测网络联通 1. ping 的基本功能2. ping 的工作原理3. ping 的常见用法4. ping 的输出解释5. ping 的应用场景6. 注意事项 netstat&#xff1a;查看网络状态 1. netstat 的基本功能2. 常见用法3. 示例4. 输出字段解释5. netstat 的替代工具6. 注意事项 xargs&…...

上海创智学院(测试)算法笔试(ACM赛制)部分例题

1.第一个题&#xff0c;大概题目意思是求n句话中最长的单词和最短的单词 这个题目做的有点磕巴&#xff0c;好几年没有写过c/c了&#xff0c;连string的复制都不会写了&#xff0c;哈哈哈&#xff0c;太笨了 后面一点点捡起来&#xff0c;还是写出来了&#xff0c;本身没啥&…...

【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨

重要信息 官网&#xff1a;www.icmeaae.com 时间&#xff1a;2025年3月7-9日 地点&#xff1a;中国西安 简介 第四届材料工程与应用力学&#xff08;ICMEAAE 2025&#xff09;将于2025年3月7日至9日在中国西安召开。本次会议将重点讨论材料科学、应用力学等领域的最新研究进…...

2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务

前言&#xff1a; 关于EO边缘安全加速平台服务 参照&#xff1a;产品概述,具体如下&#xff1a; 边缘安全加速平台 EO&#xff08;Tencent Cloud EdgeOne&#xff0c;下文简称为 EdgeOne&#xff09;是国内首款基于全新架构的真正一体化的边缘安全加速平台。提供全面的安全防…...

力扣-动态规划-70 爬楼梯

思路 dp数组定义&#xff1a;爬到第i个台阶有多少种爬法递推公式&#xff1a; 当前台阶可能是从前一个或者前两个来的dp数组初始化&#xff1a;遍历顺序&#xff1a;顺序遍历时间复杂度&#xff1a; 代码 class Solution { public:int climbStairs(int n) {if(n 1) ret…...

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片 根据您的需求&#xff0c;目前需要了解以下几个关键点及分步解决方案&#xff1a; --- 一、现状分析 1. Ollama 的限制&#xff1a; - 目前Ollama主要面向文本大模型&#xff0c;原生不支持直接上传/处理图片 …...

使用 pytest-mock 进行 Python 高级单元测试与模拟

一、单元测试与模拟的意义 在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依赖外部服务(如数据库、API、文件系统)。直接测试这些依赖会导致: 测试速度变慢测试结果不可控产生副作用(如真实发送邮件)模拟(Mocking) 技术通过创建虚拟对象替代真…...

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。

入口类&#xff1a;exportPdf ​ package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…...

《Linux 指令集:开启极客世界的钥匙_01》

一、命令行基础 &#xff08;一&#xff09;命令行提示符解析 当前用户&#xff1a;显示当前登录的用户名。例如&#xff0c;当前用户为 “ubuntu_user”&#xff0c;则在命令行提示符中会显示该用户名。 连接符&#xff1a;通常是 “”&#xff0c;用于分隔用户名和计算机名…...

【Android】用 chrome://inspect/#devices 调试H5页面

通常做Android开发的过程中&#xff0c;不可避免的需要遇到去与H5交互&#xff0c;甚至有时候需要去调试H5的信息。 这里分享一下Android工程里如何调试H5页面信息&#xff1a; 直接在浏览器地址栏输入 &#xff1a; chrome://inspect/#devices 直接连接手机usb,打开开发者模式…...

Deepseek 实战全攻略,领航科技应用的深度探索之旅

想玩转 Deepseek&#xff1f;这攻略别错过&#xff01;先带你了解它的基本原理&#xff0c;教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧&#xff0c;结合案例加深理解&#xff0c;让你全面掌握&#xff0c;探索科技…...

《论区块链技术及应用》审题技巧 - 系统架构设计师

区块链技术及应用论题写作框架 一、考点概述 本论题“区块链技术及应用”主要考察软件测试工程师对区块链技术的理解及其在软件项目中的实际应用能力。论题涵盖了多个关键方面&#xff0c;首先要求考生对区块链技术有全面的认识&#xff0c;包括但不限于其作为分布式记账技术…...

ROS2 强化学习:案例与代码实战

一、引言 在机器人技术不断发展的今天&#xff0c;强化学习&#xff08;RL&#xff09;作为一种强大的机器学习范式&#xff0c;为机器人的智能决策和自主控制提供了新的途径。ROS2&#xff08;Robot Operating System 2&#xff09;作为新一代机器人操作系统&#xff0c;具有…...

【Python模块】——pymysql

pymysql是python操作mysql的标准库&#xff0c;可以通过pip install快速导入pymysql包操作数据库 使用pymysql操作mysql 简单demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…...

【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南

一、腾讯云的镜像 https://mirrors.cloud.tencent.com/AndroidSDK/ 二、 打开 Android Studio‌的SDK Manager 路径:Tools–>SDK Manager 在右侧找到 SDK Update Sites 列表‌‌,添加如下链接,像下面一样,一个一个添加 将下面几个链接都加上去 https:...

springboot实现多文件上传

springboot实现多文件上传 代码 package com.sh.system.controller;import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMap…...

Webpack打包优化

在使用 Webpack 打包项目时&#xff0c;随着项目规模的扩大&#xff0c;构建时间和打包产物的体积可能会逐渐增加。为了提高构建性能和减小打包产物的体积&#xff0c;可以采取以下几种 Webpack 打包优化 的方法。 1. 使用 mode 配置 Webpack 通过 mode 配置来指定构建模式。…...

浅谈HTTP及HTTPS协议

1.什么是HTTP&#xff1f; HTTP全称是超文本传输协议&#xff0c;是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…...

GTID的基本概念

1.1 GTID的基本概念 1.1.1 GTID的作用 GTID的全称为Global Transaction Identifier&#xff0c;是MySQL的一个强大的特性。MySQL会为每一个DML/DDL操作都增加一个唯一标记&#xff0c;叫作GTID&#xff08;每个事务一个GTID&#xff09;。这个标记在整个复制环境中都是唯一的…...

.NET Core MVC IHttpActionResult 设置Headers

最近碰到调用我的方法要求返回一个代码值&#xff0c;但是要求是不放在返回实体里&#xff0c;而是放在返回的Headers上 本来返回我是直接用 return Json(res) 这种封装的方法特别简单&#xff0c;但是没有发现设置headers的地方 查询过之后不得已换了个返回 //原来方式 //…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...