【linux网络编程】端口
一、端口(Port)概述
在计算机网络中,端口(Port) 是用来标识不同进程或服务的逻辑通信端点。它类似于一座大楼的房间号,帮助操作系统和网络协议区分不同的应用程序,以便正确地传输数据。
1. 端口的作用
在网络通信中,IP地址用于标识主机,而端口用于区分同一主机上的多个服务。例如:
- 访问网页时,数据传输使用 HTTP协议(端口80) 或 HTTPS协议(端口443)。
- 远程登录服务器时,使用 SSH协议(端口22)。
- 发送邮件时,使用 SMTP协议(端口25)。
端口号的作用是确保数据包可以正确地发送到特定的应用程序或服务。
2. 端口的范围
端口号是一个 16位的整数,取值范围为 0~65535,通常分为三类:
-
知名端口(Well-Known Ports):0 ~ 1023
- 这些端口由 IANA(Internet Assigned Numbers Authority) 分配给知名服务,例如:
- HTTP(80)
- HTTPS(443)
- SSH(22)
- FTP(21)
- DNS(53)
- 这些端口由 IANA(Internet Assigned Numbers Authority) 分配给知名服务,例如:
-
注册端口(Registered Ports):1024 ~ 49151
- 这些端口通常用于软件公司或特定应用程序注册,避免冲突。例如:
- MySQL数据库(3306)
- PostgreSQL(5432)
- Docker(2375)
- 这些端口通常用于软件公司或特定应用程序注册,避免冲突。例如:
-
动态/私有端口(Dynamic/Private Ports):49152 ~ 65535
- 这些端口通常用于客户端程序的临时连接(如浏览网页、视频播放等),由操作系统动态分配。
3. 端口如何工作
当一台计算机与另一台计算机通信时,数据包不仅包含 IP地址,还包含 端口号,以确定数据要发送到哪个应用程序。例如:
-
浏览器访问网页
- 你的电脑(客户端)打开网页
http://example.com: - 客户端随机分配一个 临时端口(如50000),向服务器的 80号端口 发送请求。
- 服务器使用 80号端口 监听请求,并将网页数据返回到客户端的 50000号端口。
- 你的电脑(客户端)打开网页
-
SSH 远程连接
- 客户端(本机):
ssh user@192.168.1.100 - 客户端使用动态端口(如52000) 连接服务器的 22号端口。
- 服务器接收到数据,并与客户端建立 SSH 连接。
- 客户端(本机):
4. 端口的分类
4.1 TCP 端口
- TCP(传输控制协议)是面向连接的协议,保证数据传输的可靠性。
- 常见的 TCP 端口:
- HTTP(80)
- HTTPS(443)
- SSH(22)
- FTP(21)
- SMTP(25)
4.2 UDP 端口
- UDP(用户数据报协议)是无连接的协议,传输速度快,但不保证数据完整性。
- 常见的 UDP 端口:
- DNS(53)
- DHCP(67/68)
- SNMP(161)
- TFTP(69)
5. 如何查看端口使用情况
在 Linux 或 Windows 中,可以使用以下命令查看端口占用情况:
5.1 Linux 查看端口
# 查看所有监听的端口(TCP 和 UDP)
netstat -tunlp# 查看指定端口是否被占用(如80)
netstat -tulnp | grep :80# 使用 ss 命令(更快)
ss -tulnp
5.2 Windows 查看端口
# 查看所有端口使用情况
netstat -ano# 查看特定端口(如80)
netstat -ano | findstr :80
#查看 Linux 上客户端临时端口范围
cat /proc/sys/net/ipv4/ip_local_port_range
#查看 Windows 上的客户端临时端口范围
netsh int ipv4 show dynamicport tcp
6. 端口转发和防火墙
在服务器或网络设备上,可以使用 端口转发(Port Forwarding) 或 防火墙(Firewall) 规则来控制端口访问。
6.1 端口转发
如果服务器 内网IP(192.168.1.100) 运行了一个 Web 服务器(端口80),可以在路由器或 Linux 上设置端口转发,使外网用户访问:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
这样,外部用户访问 http://your-public-ip:8080 时,会被转发到 192.168.1.100:80。
6.2 防火墙控制端口
使用 iptables 或 firewalld 允许或阻止端口访问:
# 允许 22 端口(SSH 连接)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 阻止 3306 端口(MySQL 远程访问)
iptables -A INPUT -p tcp --dport 3306 -j DROP
7. 端口扫描
黑客或安全研究人员常用端口扫描工具 nmap 来检测服务器上开放的端口:
# 扫描 IP 地址 192.168.1.1 的开放端口
nmap 192.168.1.1
如果不想被扫描,可以关闭不必要的端口,或者使用防火墙限制访问。
8. 总结
- 端口是网络通信中的逻辑编号,用于区分不同的服务和应用。
- 端口号范围 0-65535,其中 0-1023 为知名端口,1024-49151 为注册端口,49152-65535 为动态端口。
- TCP 端口用于可靠传输,UDP 端口用于快速传输。
- 可以使用
netstat或ss命令查看端口占用情况。 - 可以使用防火墙和端口转发管理端口访问权限。
- nmap 等工具可用于扫描开放端口,管理员需做好安全防护。
二、客户端的端口与什么绑定?
客户端的端口与什么绑定?
客户端的端口绑定(Bind)到本机 IP 地址,用于建立 TCP 或 UDP 连接。具体来说,客户端的端口绑定到:
- 本机 IP 地址(例如
192.168.0.105) - 协议类型(TCP 或 UDP)
- 服务器 IP 地址与端口(用于连接目标服务器)
1. 端口绑定的完整过程
当客户端(你的电脑)访问某个服务器(例如 www.google.com)时,操作系统会动态分配一个端口,并与本机 IP 地址 绑定,用于进行通信。
示例
假设你的本机 IP 是 192.168.0.105,你在浏览器输入 https://www.google.com:
- 客户端分配端口
- 操作系统随机分配一个动态端口(例如
50000)。 - 绑定到 本机 IP 地址
192.168.0.105,用于与服务器通信。
- 操作系统随机分配一个动态端口(例如
- 客户端发起连接
- 发送请求到服务器
142.250.74.36:443(Google 的 HTTPS 端口)。
- 发送请求到服务器
- 服务器响应
- 服务器的
443端口(HTTPS)返回数据到192.168.0.105:50000。
- 服务器的
- 数据传输完成,连接关闭
- 当浏览器收到数据后,客户端释放
50000端口,系统可以重新分配给其他程序。
- 当浏览器收到数据后,客户端释放
📌 连接绑定关系
客户端(你的电脑)
IP地址:192.168.0.105
端口号:50000 (随机分配)服务器(Google)
IP地址:142.250.74.36
端口号:443 (HTTPS)📌 TCP 连接映射:
192.168.0.105:50000 → 142.250.74.36:443
2. 客户端端口绑定的几种方式
🔹 方式 1:动态绑定(默认)
客户端通常使用操作系统自动分配的端口(49152-65535)。
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
📌 特点
- 端口由系统随机分配,避免端口冲突。
- 适用于浏览器、API 请求、远程连接等。
🔹 方式 2:手动绑定(bind 绑定)
有些应用(如 P2P、VPN)希望使用固定端口,可以手动绑定:
struct sockaddr_in client_addr;
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = htonl(INADDR_ANY);
client_addr.sin_port = htons(50000); // 绑定 50000 端口bind(sockfd, (struct sockaddr *)&client_addr, sizeof(client_addr));
connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
📌 特点
- 适用于 VoIP、P2P、游戏服务器、VPN。
- 如果端口被占用,会导致
bind()失败。
🔹 方式 3:绑定特定的 IP
有时,客户端有多个网卡(多个 IP),需要指定使用某个 IP:
inet_pton(AF_INET, "192.168.1.100", &client_addr.sin_addr);
bind(sockfd, (struct sockaddr *)&client_addr, sizeof(client_addr));
📌 特点
- 适用于服务器有多个网卡的情况(如公网和内网双 IP)。
- 可用于指定特定网络接口。
3. 绑定的三要素
客户端的端口绑定到:
- 本机 IP 地址(如
192.168.0.105)。 - 协议(TCP/UDP)。
- 目标服务器的 IP 和端口(如
142.250.74.36:443)。
📌 绑定示例
客户端:192.168.0.105:50000 → 服务器:142.250.74.36:443(HTTPS)
客户端:192.168.0.105:50001 → 服务器:8.8.8.8:53(DNS 查询)
如果同一个 IP 需要发起多个连接,操作系统会自动分配不同的端口,避免冲突。
4. 为什么客户端端口是随机的?
🔹 避免端口冲突
- 如果所有客户端都使用 固定端口(如 50000),不同程序之间会发生冲突。
- 操作系统通过 随机分配端口,确保多个连接可以同时进行。
🔹 提高安全性
- 随机端口 避免攻击者猜测客户端端口,减少攻击风险(如端口扫描)。
🔹 支持多个连接
- 例如,你同时打开多个 网页,每个网页都会使用不同的客户端端口:
192.168.0.105:50000 → www.google.com:443
192.168.0.105:50001 → www.facebook.com:443
192.168.0.105:50002 → www.github.com:443
这样,浏览器可以同时加载多个网页,而不会发生端口冲突。
5. 如何查看端口绑定情况?
🔹 Windows
使用 netstat 命令:
netstat -ano | findstr :50000
如果你想查看哪个程序绑定了端口:
tasklist | findstr 21612
🔹 Linux
netstat -tulnp | grep :50000
或者:
ss -tulnp
6. 服务器端端口绑定
服务器端的端口是固定的,例如:
- Web 服务器(HTTP):监听 80 端口
- Web 服务器(HTTPS):监听 443 端口
- SSH 服务器:监听 22 端口
服务器端通常绑定:
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY; // 绑定所有本机 IP
server_addr.sin_port = htons(80); // 绑定 80 端口
bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
listen(sockfd, 5);
📌 客户端连接服务器
客户端 192.168.0.105:50000 → 服务器 142.250.74.36:80
客户端 192.168.0.105:50001 → 服务器 142.250.74.36:80
服务器端使用固定端口,客户端使用随机端口 来访问。
7. 端口绑定总结
| 绑定对象 | 绑定到 | 作用 |
|---|---|---|
| 客户端端口 | 本机 IP 地址 | 用于发送请求 |
| 服务器端口 | 固定端口(80、443、22) | 监听连接 |
| 动态端口 | 49152-65535 | 客户端自动分配 |
🚀 核心要点
- 客户端的端口 绑定到 本机 IP 地址,用于与服务器通信。
- 操作系统自动分配端口(49152-65535),避免端口冲突。
- 服务器端使用固定端口,客户端使用随机端口 来访问。
- 可以手动绑定端口,但可能导致端口冲突(如 VPN、P2P)。
三、实例
C:\Users\xingz>netstat -ano协议 本地地址 外部地址 状态 PIDTCP 0.0.0.0:7897 0.0.0.0:0 LISTENING 21612TCP 0.0.0.0:9012 0.0.0.0:0 LISTENING 15564TCP 127.0.0.1:1655 127.0.0.1:39797 ESTABLISHED 2864TCP 127.0.0.1:1855 127.0.0.1:7897 ESTABLISHED 22784TCP 127.0.0.1:3335 127.0.0.1:39797 ESTABLISHED 2864TCP 127.0.0.1:5080 127.0.0.1:62226 ESTABLISHED 10468TCP 127.0.0.1:6114 127.0.0.1:7897 TIME_WAIT 0TCP 127.0.0.1:6122 127.0.0.1:7897 ESTABLISHED 22784TCP 127.0.0.1:6219 127.0.0.1:7897 ESTABLISHED 22784TCP 127.0.0.1:6296 127.0.0.1:7897 ESTABLISHED 22784TCP 127.0.0.1:6308 127.0.0.1:7897 TIME_WAIT 0TCP 127.0.0.1:6370 127.0.0.1:7897 ESTABLISHED 22784TCP 127.0.0.1:6382 127.0.0.1:6381 TIME_WAIT 0TCP 127.0.0.1:6386 127.0.0.1:7897 ESTABLISHED 22784UDP 127.0.0.1:49664 127.0.0.1:49664 4984UDP 192.168.0.105:137 *:* 4UDP 192.168.0.105:138 *:* 4
解析你的 netstat 活动连接信息
你的 netstat 结果列出了 所有当前活动的 TCP 和 UDP 连接,包含:
- 监听端口(LISTENING)
- 已建立的连接(ESTABLISHED)
- 等待状态的连接(TIME_WAIT、CLOSE_WAIT、LAST_ACK 等)
1. LISTENING 端口(正在监听)
这些端口是服务器程序正在监听的端口,意味着某些服务正在等待连接。例如:
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1516
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:7897 0.0.0.0:0 LISTENING 21612
常见监听端口的含义
| 端口号 | 进程 ID (PID) | 作用 |
|---|---|---|
| 135 | 1516 | 远程过程调用(RPC),Windows 用于 DCOM |
| 445 | 4 | Windows 文件共享(SMB) |
| 7897 | 21612 | 这个端口在你的系统里频繁出现,可能是某个本地应用的后台服务 |
| 5040 | 9412 | 可能与 Microsoft Edge 或 Cortana 相关 |
| 7680 | 15700 | 可能是 Windows 的 Delivery Optimization(P2P 更新) |
如何查看进程名称?
Windows:
tasklist | findstr 21612
Linux:
lsof -i :7897
2. ESTABLISHED(已建立的连接)
这些是当前正在使用的网络连接:
TCP 192.168.0.105:1856 223.109.175.205:443 ESTABLISHED 21612
TCP 192.168.0.105:1858 120.221.204.185:7826 ESTABLISHED 21612
TCP 192.168.0.105:4828 223.5.5.5:443 ESTABLISHED 21612
TCP 192.168.0.105:5478 223.5.5.5:443 ESTABLISHED 21612
📌 含义解析
192.168.0.105是你的本机 IP。223.5.5.5:443是 阿里 DNS 服务器,用于 HTTPS 连接。120.221.204.185:7826可能是 游戏、云服务 或者 即时通信软件(如微信、QQ)。- PID 21612 可能是某个活跃的程序,如 浏览器、聊天软件、云服务。
如何确认这些 IP 是什么?
你可以使用 nslookup 或 whois:
nslookup 223.109.175.205
whois 223.109.175.205
3. TIME_WAIT(等待超时)
TCP 127.0.0.1:6308 127.0.0.1:7897 TIME_WAIT 0
TCP 192.168.0.105:6115 120.253.253.98:443 TIME_WAIT 0
TIME_WAIT 说明:
- 这些连接已经被关闭,但为了确保数据完整性,系统会等待一段时间(通常是
2*MSL,最大生存时间)。 - 这种情况通常发生在 短连接 HTTP 请求(如访问网页)。
如何减少 TIME_WAIT 连接数量?
Windows:
netsh int tcp set global MaxUserPort=65535
netsh int tcp set global TcpTimedWaitDelay=30
Linux:
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
4. CLOSE_WAIT(被动关闭)
TCP 127.0.0.1:6419 127.0.0.1:7897 CLOSE_WAIT 22784
TCP 192.168.0.105:6420 123.249.98.69:443 CLOSE_WAIT 21612
📌 CLOSE_WAIT 说明
- 服务器(或本机)没有正确关闭连接。
- 这通常是 进程没有释放 socket 资源,可能是软件的 bug 或网络异常。
如何修复 CLOSE_WAIT?
- 终止进程:
taskkill /PID 22784 /F - 检查应用是否未正确关闭 socket:
- Web 服务器、数据库、远程桌面 可能需要优化连接管理。
5. LAST_ACK(等待最后确认)
TCP 192.168.0.105:6431 112.34.111.235:443 LAST_ACK 21612
TCP 192.168.0.105:6470 112.34.111.235:443 LAST_ACK 21612
📌 LAST_ACK 说明
- 服务器已经关闭连接,但客户端还未确认。
- 可能是网络丢包,或者客户端软件的关闭逻辑有问题。
如何解决 LAST_ACK?
- 检查防火墙、路由器是否丢包。
- 检查网络是否稳定(特别是 Wi-Fi、VPN)。
- 如果
LAST_ACK连接持续很长时间,可以尝试重启该进程:taskkill /PID 21612 /F
6. UDP 端口(无连接)
UDP 端口通常用于:
- DNS 解析(5353, 53)
- 网络发现(3702)
- SNMP 监控(161)
- 游戏或 VoIP(随机高端口)
UDP 0.0.0.0:123 *:* 15676
UDP 0.0.0.0:3702 *:* 5820
UDP 0.0.0.0:5353 *:* 22784
UDP 0.0.0.0:7897 *:* 21612
UDP 0.0.0.0:59964 *:* 22784
UDP 192.168.0.105:137 *:* 4
📌 UDP 端口解析
123→ NTP(网络时间同步)3702→ Windows 设备发现(WS-Discovery)5353→ mDNS(Bonjour,局域网服务发现)137→ NetBIOS(局域网共享)
如何关闭不需要的 UDP 端口?
Windows:
net stop W32Time
Linux:
systemctl stop systemd-timesyncd
7. 如何分析哪个程序占用了某个端口?
Windows
netstat -ano | findstr :7897
tasklist | findstr 21612
Linux
lsof -i :7897
netstat -tulnp | grep 7897
总结
- 监听的端口(LISTENING):服务器应用正在等待连接。
- 已建立的连接(ESTABLISHED):正在通信的 TCP 连接。
- TIME_WAIT:等待超时,防止旧连接影响新连接。
- CLOSE_WAIT:进程未正确关闭连接,可能有 bug。
- LAST_ACK:服务器等待客户端确认关闭,可能有网络丢包。
- UDP 端口:用于 DNS、NTP、游戏、mDNS 发现等。
相关文章:
【linux网络编程】端口
一、端口(Port)概述 在计算机网络中,端口(Port) 是用来标识不同进程或服务的逻辑通信端点。它类似于一座大楼的房间号,帮助操作系统和网络协议区分不同的应用程序,以便正确地传输数据。 1. 端口…...
PyTorch系列教程:Tensor.view() 方法详解
这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…...
软件测试的基础入门(二)
文章目录 一、软件(开发)的生命周期什么是生命周期软件(开发)的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…...
Springboot + minio
参考: SpringBoot整合Minio_springboot minio-CSDN博客 <!--minio 依赖--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.11</version></dependency> applicaio…...
地下变电站如何实现安全智能运营-以110kV站为例看环境监测与设备联控
1、地下变电站简介 在经济发达的地区,由于城市中心土地资源紧张、征地拆迁费用昂贵,因此采用地下变电站来解决这些问题不失为一个好的途径和思路。地下变电站一般采用室内全封闭式组合电气设备,220&#x…...
windows无界面后台定时任务 (重启自启动,ODBS为例)
一、前言 mdb(Microsoft Database)是Microsoft Access中使用的一种数据存储格式,可以通过ODBC驱动程序进行访问和操作,在Python中也可以安装相应模块打开。 这是我在项目中更新bs数据的一个实践记录,结合windows定时一起记录一下,方便以后照搬~ 二、安装 Python安装库…...
FPGA 实验报告:四位全加器与三八译码器仿真实现
目录 安装Quartus软件 四位全加器 全加器、半加器 半加器: 全加器: 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…...
win11 Visual Studio 17 2022源码编译 opencv4.11.0 + cuda12.6.3 启用GPU加速
win11 Visual Studio 17 2022 源码编译 opencv4.11.0 cuda12.6.3 启用GPU加速 配置: 生成 opencv 生成 opencv-python 1 下载源码和安装软件 win11 x64 系统 安装Visual Studio 17 2022 下载opencv4.11.0 源码 https://github.com/opencv/opencv/releases/tag/4.11.0 下载…...
Ribbon实现原理
文章目录 概要什么是Ribbon客户端负载均衡 RestTemplate核心方法GET 请求getForEntitygetForObject POST 请求postForEntitypostForObjectpostForLocation PUT请求DELETE请求 源码分析类图关系 与Eureka结合重试机制 概要 什么是Ribbon Spring Cloud Ribbon是一个基于HTTP和T…...
MuMu-LLaMA:通过大型语言模型进行多模态音乐理解和生成(Python代码实现+论文)
MuMu-LLaMA 模型是一种音乐理解和生成模型,能够进行音乐问答以及从文本、图像、视频和音频生成音乐,以及音乐编辑。该模型利用了用于音乐理解的 MERT、用于图像理解的 ViT 和用于视频理解的 ViViT 等编码器,以及作为音乐生成模型(…...
高效Android MQTT封装工具:简化物联网开发,提升性能与稳定性
在Android开发中,封装MQTT工具可以帮助简化与MQTT服务器的通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,常用于物联网(IoT)设备之间的通信。 以下是一个简单的MQ…...
数据库原理7
1.“数据库系统运行与维护工具”的研究属于数据库管理系统软件 2.1970年IBM公司的高级研究员E.F.Codd提出了关系数据模型 3.每个属性的属性值是不可分解的,即关系的每个分量必须是一个不可分的数据项。属性值的取值应满足域完整性约束。 4.视图作用:简…...
2025最新比较使用的ai工具都有哪些,分别主要用于哪些方面?
文章目录 一、AI对话与交互工具二、AI写作与内容生成工具三、AI绘画与设计工具四、AI视频生成工具五、办公与效率工具六、其他实用工具选择建议 根据2025年最新行业动态和用户反馈,以下AI工具在多个领域表现突出,覆盖对话、写作、设计、视频生成等场景&a…...
什么是 MyBatis? 它的优点和缺点是什么?
一、 什么是 MyBatis? 定义: MyBatis 是一款优秀的持久层框架,用于简化 Java 应用程序与数据库之间的交互。MyBatis 通过 XML 或注解 的方式,将 SQL 语句与 Java 代码分离,提供了一种灵活的、易于维护的数据访问解决方…...
在ArcMap中通过Python编写自定义工具(Python Toolbox)实现点转线工具
文章目录 一、需求二、实现过程2.1、创建Python工具箱(.pyt)2.2、使用catalog测试代码2.3、在ArcMap中使用工具 三、测试 一、需求 通过插件的形式将点转线功能嵌入ArcMap界面,如何从零开始创建一个插件,包括按钮的添加、工具的实…...
Array and string offset access syntax with curly braces is deprecated
警告信息 “Array and string offset access syntax with curly braces is deprecated” 是 PHP 中的一个弃用警告(Deprecation Notice),表明在 PHP 中使用花括号 {} 来访问数组或字符串的偏移量已经被标记为过时。 背景 在 PHP 的早期版本…...
moodle 开源的在线学习管理系统(LMS)部署
一、Moodle 简介 Moodle(Modular Object-Oriented Dynamic Learning Environment)是一个开源的在线学习管理系统(LMS),广泛应用于教育机构和企业培训。其核心功能包括课程管理、作业提交、在线测试、论坛互动和成绩跟…...
后智能体时代的LLM和Agent
文章目录 1. 关于AI重塑的哲学体系2. 关于AI大模型体系的认知3. 关于AI大模型体系的畅想4. 关于人和AI大模型体系的共处5. 写在最后 随着OpenAI、Deepseek、Manus等等智能体的爆火,人们茶前饭后、插科打诨的话题都离不开这些智能体,现状也正如《人民日报…...
Day6 DFS
一、跳台阶 一个楼梯共有 nn 级台阶,每次可以走一级或者两级,问从第 00 级台阶走到第 nn 级台阶一共有多少种方案。 输入格式 共一行,包含一个整数 nn。 输出格式 共一行,包含一个整数,表示方案数。 数据范围 1…...
Releases(发布) 和 版本管理 是两个紧密相关的概念
在软件开发和维护中,Releases(发布) 和 版本管理 是两个紧密相关的概念,特别是在开源项目或企业软件开发中。 1. Releases(发布) Release 是指软件的一个正式发布版本,通常经过开发、测试、修复 Bug,并被认为是足够稳定和可用于生产环境的版本。 主要特点 里程碑:通…...
模型微调——模型性能提升方法及注意事项(自用)
名词补充 人为为训练数据标注的标签称为黄金标准或真实值,这个过程一定程度上保证训练的准确性,但是其人工标注的成本和时间很高,并且标注的标签受人的主观因素影响。 导致模型性能不佳的因素和解决办法 ①不同类别的数据不平衡:统…...
景联文科技:以精准数据标注赋能AI进化,构筑智能时代数据基石
在人工智能技术席卷全球的浪潮中,高质量数据已成为驱动AI模型进化的核心燃料。作为全球领先的AI数据服务解决方案提供商,景联文科技深耕数据标注领域多年,以技术为基、以专业为本,致力于为全球客户提供全场景、高精度、多模态的数…...
嵌入式L6计算机网络
Telnet不加密 socket是应用层和下面的内核...
华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命
华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 华为鸿蒙系统全景解读&#x…...
2025最新软件测试面试八股文(含答案+文档)
1、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 参考答案: 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程…...
微前端框架 Qiankun 的应用及问题分析
一、Qiankun 的核心应用场景与优势 多技术栈共存与灵活集成 Qiankun 支持主应用与子应用使用不同技术栈(如 Vue、React、Angular 等),通过 HTML Entry 方式接入子应用,无需深度改造子应用即可实现集成,降低了技术迁移成…...
八卡5090服务器首发亮相!
AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力,在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出,正促使各行业应用端算力需求向推理主导转变,呈爆发式增长 。 随着 DeepS…...
C#类型转换基本概念
一、基本定义 C# 类型转换是将数据从一种类型转换为另一种类型的过程,分为 隐式转换 和 显式转换 两类。 强类型语言特性:C# 要求变量类型在编译时确定,类型转换需满足兼容性或显式规则。目的:处理不同数据类…...
基于SSM+Vue+uniapp的驾校预约管理小程序+LW示例
系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…...
关于C++数据类型char的类型是整数的思考
学习数据类型时,整数类型中有一个特殊的类型char,可以使用字符来为其赋,也可以用整数来为其赋值,这是怎么一回事?其实任何类型,在计算机的内存中,在最小的存储单元比特中,内部只有0或…...
