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

网络编程超时检测,unix域套接字,粘包

刷题:

# 超时检测核心要点
## 1. 基本类型
### 阻塞模式
- 永久等待数据,无超时机制
- 典型函数:`recv()`阻塞调用
### 非阻塞模式
- 立即返回结果(成功/错误)
- 设置方式:`fcntl(fd, F_SETFL, O_NONBLOCK)`
### 超时检测
- 设置等待阈值,超时返回错误
- 应用场景:网络请求、心跳包
---
## 2. 超时检测函数
### select函数
- 参数:`struct timeval`设置秒和微秒
- 示例:
```c
struct timeval tm = {3, 0};
if (select(..., &tm) == 0) { /* 超时处理 */ }

poll函数

  • 参数:超时时间(毫秒)
  • 示例:
    if (poll(fds, 10, 3000) == 0) { /* 超时处理 */ }

epoll_wait

  • 参数:超时时间(毫秒)
  • 示例:
    if (epoll_wait(epfd, events, 10, 3000) == 0) { /* 超时处理 */ }

setsockopt

  • 设置收发超时:
    struct timeval rcv_timeo = {3, 0};
    setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &rcv_timeo, sizeof(rcv_timeo));

3. 心跳包机制

核心作用

  • 维持长连接活跃状态
  • 检测客户端存活(TCP/UDP均适用)

实现步骤

  1. 客户端:周期发送空包(如每5秒)
  2. 服务端
    • 维护客户端列表(IP+Port+最后通信时间)
    • 定时任务检测超时(如60秒无响应判定离线)

数据结构

  • 消息类型
    enum type_t { CHAR, HEART }; // 区分业务包和心跳包
  • 时间记录
    typedef struct timebuf {
    unsigned int ip;
    unsigned short port;
    time_t tm; // 最后通信时间戳
    } timebuf_t;

4. 信号处理

alarm函数

  • 周期性触发信号(如每5秒)
  • 示例:
    signal(SIGALRM, handler);
    alarm(5);

sigaction配置

  • 关闭自重启属性
    struct sigaction act;
    sigaction(SIGALRM, NULL, &act); // 获取原属性
    act.sa_flags &= ~SA_RESTART; // 关闭自重启
    sigaction(SIGALRM, &act, NULL); // 设置新属性
  • 超时中断处理
    void handler(int sig) {
    printf("超时中断!");
    // 中断阻塞操作(如recv返回-1,errno=EINTR)
    }

5. 代码实现示例

TCP服务端超时检测

  • 关键步骤:
    1. 创建socket并绑定监听
    2. 使用alarm设置超时信号
    3. recv中捕获超时错误(errno == EINTR

UDP心跳包服务端

  • 核心逻辑:
    while (1) {
    ret = recvfrom(sockfd, &buf, ..., &cliaddr);
    if (ret > 0) {
    update_time(cliaddr); // 更新时间戳
    if (buf.type == HEART) continue; // 心跳包不处理业务
    }
    }

# UNIX域套接字核心要点
## 1. 基本概念
### 本地通信机制
- 通过文件路径而非网络地址通信
- 适用场景:高效本地进程间通信
- 文件类型:`s`类型套接字文件
### 与网络套接字对比
- **网络通信**:自动填充客户端IP+Port
- **域套接字**:需手动绑定路径实现双向通信
---
## 2. TCP域套接字
### 服务端流程
1. **创建套接字**:
```c
socket(AF_UNIX, SOCK_STREAM, 0)
  1. 绑定路径
    struct sockaddr_un addr = {.sun_family=AF_UNIX};
    strcpy(addr.sun_path, "./unix_socket");
    bind(sfd, (struct sockaddr*)&addr, sizeof(addr));
  2. 监听连接
    listen(sfd, 5);
  3. 接受连接
    accept(sfd, NULL, NULL); // 忽略客户端路径

客户端流程

  1. 创建套接字:同服务端
  2. 连接服务端
    connect(cfd, (struct sockaddr*)&server_addr, sizeof(server_addr));

关键函数

  • access():检查文件存在性
  • unlink():删除旧套接字文件避免绑定失败

3. UDP域套接字

服务端实现

  1. 绑定路径:必须显式绑定
    bind(sfd, "./server_socket");
  2. 接收消息
    recvfrom(sfd, buf, sizeof(buf), 0, (struct sockaddr*)&cliaddr, &len);
  3. 发送响应:需客户端路径
    sendto(sfd, buf, strlen(buf), 0, (struct sockaddr*)&cliaddr, len);

客户端实现

  1. 必须绑定路径:否则服务端无法回复
    bind(cfd, "./client_socket");
  2. 发送消息
    sendto(cfd, buf, strlen(buf), 0, (struct sockaddr*)&server_addr, len);

4. 并发与优化

epoll模型应用

  • 非阻塞设置
    fcntl(fd, F_SETFL, O_NONBLOCK);
  • 事件监听
    epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event);
  • 边缘触发
    event.events = EPOLLIN | EPOLLET;

文件管理

  • 路径冲突处理
    if (access("./socket_file", F_OK) == 0) unlink("./socket_file");

5. 数据结构

地址结构体

struct sockaddr_un {
sa_family_t sun_family; // AF_UNIX
char sun_path[108]; // 套接字文件路径
};

消息格式

typedef struct {
enum { CHAR, HEART } type; // 数据类型标识
char text[128]; // 实际数据
} msgbuf_t;

# TCP粘包问题核心要点
## 基本概念
### 粘包现象定义
- 数据包在传输过程中发生粘连
- 表现为接收端无法区分原始数据边界
### 发生场景
- TCP流式传输固有特性
- 发送/接收缓冲区大小不一致
- 网络传输延迟导致数据堆积
## 核心成因
### 协议特性
- TCP面向字节流的传输方式
- UDP数据报传输天然无粘包
### 应用层因素
- 发送端数据写入过快
- 接收端读取不及时
- 数据包大小与缓冲区不匹配
## 解决方案设计
### 数据封包协议
- 固定包头结构:
```c
typedef struct {
uint32_t length; // 数据长度(网络字节序)
char data[]; // 实际数据
} tcp_packet_t;
  • 包头校验机制(CRC32/MD5)

发送端实现

  1. 数据分片预处理
  2. 添加4字节长度头
  3. 使用htonl转换字节序
  4. 分次发送保证完整性

接收端实现

  1. 先读取4字节包头
  2. ntohl转换获得数据长度
  3. 循环读取直到数据完整
  4. 缓冲区动态扩容机制

代码实现关键点

服务器端核心逻辑

  • 双重接收循环结构
  • 非阻塞读取超时处理
  • 数据完整性校验
  • 异常断开检测机制

客户端核心逻辑

  • 文件分块随机读取
  • 内存预分配策略
  • 数据分片发送保障
  • 错误重传机制

性能优化方向

传输层优化

  • 设置TCP_NODELAY选项
  • 调整SO_SNDBUF/SO_RCVBUF

应用层优化

  • 滑动窗口协议实现
  • 双缓冲区分包处理
  • 异步IO事件驱动模型

错误处理机制

常见异常场景

  • 数据包长度校验失败
  • 接收缓冲区溢出
  • 网络传输中断
  • 字节序转换错误

健壮性设计

  • 心跳包维持连接
  • 数据包重传请求
  • 校验和验证机制
  • 连接异常中断恢复

相关文章:

网络编程超时检测,unix域套接字,粘包

刷题: # 超时检测核心要点## 1. 基本类型### 阻塞模式- 永久等待数据,无超时机制- 典型函数:recv()阻塞调用### 非阻塞模式- 立即返回结果(成功/错误)- 设置方式:fcntl(fd, F_SETFL, O_NONBLOCK)### 超时检…...

springboot AOP 接口限流(基于IP的接口限流和黑白名单)

使用 Spring Boot 自定义注解和AOP实现基于IP的接口限流和黑白名单 在我们日常开发的项目中为了保证系统的稳定性,很多时候我们需要对系统做限流处理,它可以有效防止恶意请求对系统造成过载。常见的限流方案主要有: 网关限流: NG…...

Python uv包管理器使用指南:从入门到精通

Python uv包管理器使用指南:从入门到精通 作为一名Python开发者,你是否曾经为虚拟环境管理和依赖包安装而头疼?今天我要向大家介绍一个强大的工具——uv包管理器,它将彻底改变你的Python开发体验。 什么是uv包管理器&#xff1f…...

【计算机网络】TLS中的对称加密和非对称加密的应用,应对第三方抓包的双向https认证

TLS工作流程简化版 证书验证流程 客户端通过CA的公钥验证服务器数字证书的签名,确保服务器身份可信,防止中间人攻击。 预主密钥加密传输 客户端生成预主密钥,用服务器证书中的公钥加密后发送给服务器,只有服务器(持有…...

Stable Diffusion WebUI 插件大全:功能详解与下载地址

Stable Diffusion WebUI 的强大之处在于其丰富的插件生态,这些插件可以大幅提升 AI 绘画的效率和质量。本文将详细介绍 21 个常用插件,包括它们的功能、效果说明以及下载地址,帮助你更好地使用 Stable Diffusion WebUI。 插件的安装方式 直…...

【行为型之策略模式】游戏开发实战——Unity灵活算法架构的核心实现策略

文章目录 🎮 策略模式(Strategy Pattern)深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码(动态伤害计算系统)1. 定义策略接口与上下文2. 实现具体策略3. 客户端使用 四、模式进阶技巧1. 策略组合2. 策…...

第二十九节:直方图处理-直方图均衡化

在数字图像处理中,直方图均衡化(Histogram Equalization)是一种经典的对比度增强技术。它通过重新分配图像像素的亮度值,使图像的灰度级分布更加均匀,从而显著提升图像的视觉效果。 一、直方图基础 1.1 什么是直方图? 直方图(Histogram)是图像处理中用于描述图像像素…...

性能比拼: Nginx vs. Envoy

本内容是对知名性能评测博主 Anton Putra Nginx vs. Envoy performance benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 Envoy 被设计为服务网格中的高性能代理。 你可以将它部署在虚拟机(VM)中,或作为 sidecar 方式部…...

在 C 语言中,U、UL、ULL、L、LL 等符号使用说明

在 C 语言中,U、UL、ULL、L、LL 等符号是用于明确指定整数字面量类型的后缀,其核心作用是避免数据类型隐式转换导致的溢出或未定义行为。以下是具体分类和使用场景: 一、整数字面量后缀分类 后缀全称适用场景示例说明Uunsigned100U无符号整数…...

一般枚举题目合集

一般枚举题目合集 枚举NOIP 2011 提高组 铺地毯P2327 [SCOI2005] 扫雷蓝桥真题 跑步蓝桥真题 猜年龄 二进制枚举常用的技巧整理子集 - 力扣P10449 费解的开关UVA11464 Even Parity通过Virtual Judge提交代码正解 日期枚举蓝桥真题 跑步NOIP 2016 普及组 回文日期日期统计 写这段…...

MCP(Model Context Protocol,模型上下文协议)

1. 起因, 目的: MCP, 貌似最近很火,简单了解一下, 跟上时代节奏。看似是一个工具,一个新概念,其实是个鸡肋(仅仅代表个人观点)。 2. 先看效果 这里插入图片 3. 过程: 问题1, 什么是 MCP h…...

MQTT 在Spring Boot 中的使用

在 Spring Boot 中使用 MQTT 通常会借助 Spring Integration 项目提供的 MQTT 支持。这使得 MQTT 的集成可以很好地融入 Spring 的消息驱动和企业集成模式。 以下是如何在 Spring Boot 中集成和使用 MQTT 的详细步骤: 前提条件: MQTT Broker&#xff…...

uniapp使用全局组件,

在 Uniapp 中,如果你的组件是应用层组件(例如全局悬浮按钮、全局通知栏等),并且希望它自动出现在所有页面而无需在每个页面模板中手动添加组件标签,可以通过以下两种方案实现: 方案一:通过 app.…...

【三维重建】三维场景生成:综述

标题:《3D Scene Generation: A Survey》 来源:新加坡南洋理工大学 项目:https://github.com/hzxie/Awesome-3D-Scene-Generation 文章目录 摘要一、前言二、准备工作2.1 任务定义2.2 三维场景表示2.3 生成模型 三、方法:分层分类…...

怎样将MM模块常用报表设置为ALV默认格式(MB52、MB5B、ME2M、ME1M等)

【SAP系统研究】 对SAP系统中的报表,最方便的格式就是ALV了,可排序、可导出,非常友好。 但有些常见报表却不是默认ALV界面的,譬如MB52: 是不是有点别扭?但其实是可以后台配置进行调整的。 现将一些常用报表修改为默认ALV的方法进行总结,便于大家使用。 一、MB52、MB5…...

Flutter 开发入门:从一个简单的计数器应用开始

在当今快速发展的移动应用开发领域,Flutter 框架以其高效、跨平台的特点脱颖而出,成为许多开发者的首选。本文将通过一个简单的 Flutter 项目代码,带你深入了解 Flutter 开发的基本概念和流程。这个项目是一个简单的计数器应用,它…...

Python解释器、REPL与脚本的区别

用ChatGPT做软件测试 “初学者写代码,高手理解运行。” 要成为真正理解代码的人,必须透彻理解:Python 是如何运行你的代码的?解释器、REPL 和脚本之间的界限与联系究竟是什么? 一、编程学习常见误区:把“运…...

总共76dp 空出20dp然后放一个控件的写法

<FrameLayout android:id"id/bt_user_agree" android:layout_width"120dp" android:layout_height"76dp" > <ImageView android: 这里里上一个 android:layout_width"wrap_content" android:layout_height"40dp" …...

【PmHub后端篇】PmHub集成 Sentinel+OpenFeign实现网关流量控制与服务降级

在微服务架构中&#xff0c;保障服务的稳定性和高可用性至关重要。本文将详细介绍在 PmHub 中如何利用 Sentinel Gateway 进行网关限流&#xff0c;以及集成 Sentinel OpenFeign 实现自定义的 fallback 服务降级。 1 熔断降级的必要性 在微服务架构中&#xff0c;服务间的调…...

C#扩展方法的入门理解

public static class CanGetModelExtension {public static T GetModel<T>(this ICanGetModel self) where T : class, IModel >self.GetArchitecture().GetModel<T>(); } 前言&#xff1a; 在学习QFramework时&#xff0c;看底层框架代码注意到这个函数&#…...

HTML应用指南:利用POST请求获取全国圆通快递服务网点位置信息

圆通快递作为国内物流行业的领军企业&#xff0c;自2000年成立以来&#xff0c;始终秉持 “客户要求&#xff0c;圆通使命” 的服务宗旨&#xff0c;致力于为客户提供高效、优质的物流服务。凭借其庞大的物流网络、先进的信息技术以及卓越的运营管理&#xff0c;圆通快递在激烈…...

vulnhub靶场——secarmy

靶机&#xff1a;secarmy靶机&#xff0c;IP地址为192.168.230.18 攻击&#xff1a;kali&#xff0c;IP地址为192.168.230.134 靶机和攻击机都采用VMware虚拟机&#xff0c;都采用NAT模式 端口扫描&#xff1a; nmap 192.168.230.18 -O -A -p- --reason -sV 21/tcp (ftp): 开…...

Daily AI 20250514 (迁移学习与元学习)

参考资料&#xff1a;神经网络与深度学习 目录 迁移学习 &#xff08;Transfer Learning&#xff09;归纳迁移学习转导迁移学习 元学习 &#xff08;Meta Learning&#xff09;基于优化器的元学习模型无关的元学习&#xff08;Model-AgnosticMeta-Learning&#xff0c;MAML&am…...

牛市买卖数字货币逻辑

在牛市中进行数字货币交易&#xff0c;核心逻辑是顺势而为、控制风险、把握周期。以下是关键策略和逻辑框架&#xff1a; 一、牛市的核心逻辑 资金驱动 牛市由增量资金&#xff08;新投资者、机构资金、杠杆资金&#xff09;推动&#xff0c;流动性充裕时&#xff0c;市场情绪乐…...

7.DTH11和PWM波

目录 室内/本地温湿度检测 温湿度传感器介绍 获取手册和例程的方法 从手册中提取重要信息 传感器的分类 温度传感器类型 DHT11 的介绍 温湿度传感器的接口 温湿度传感器的时序 温湿度传感器电路介绍 IO 的配置 定时器输出 PWM 波 PWM 波介绍 PWM 波的作用&#x…...

在UI 原型设计中,交互规则有哪些核心要素?

在UI 原型设计中&#xff0c;交互规则主要有三个核心要素&#xff0c;分别为重要性、原则与实践&#xff0c;具体表现在&#xff1a; 一、交互规则在 UI 原型设计中的重要性 明确交互逻辑&#xff1a;设计阶段制定交互规则&#xff0c;清晰定义界面元素操作响应。 如社交应用…...

树的直径 | 树的最长路径

树的直径&#xff1a; 树上任意两节点之间最长的简单路径即为树的「直径」。 定理&#xff1a; 在一棵树上&#xff0c;从任意节点 u 开始进行一次 DFS&#xff0c;到达的距离其最远的节点 v 必为直径的一端。 B4016 树的直径 - 洛谷 思路&#xff1a; 由于这题中每条边的…...

AbMole解读:脂质体的关键组分和主要合成方法

脂质体&#xff08;Liposome&#xff09;是一种由磷脂等两性分子自发形成的封闭囊泡结构&#xff0c;随着纳米技术、材料科学等多学科的交叉发展&#xff0c;脂质体的研究与应用进入了一个新的阶段&#xff0c;并在肿瘤研究、疫苗研发、基因递送等多个领域发挥着关键作用。AbMo…...

Python爬虫之品牌口碑数据抓取

上一篇我们介绍了爬虫营销的优势&#xff0c;这次我就展开详细的说说&#xff0c;如何通过爬取社交媒体或电商平台的公开评论来分析自己或竞争对手的品牌声誉。 选择微博这样的平台&#xff0c;因为它的数据相对公开&#xff0c;而且有API支持&#xff0c;但要注意频率限制和反…...

【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】

“车机蓝牙音乐免切源” 是近年来车载系统&#xff08;IVI&#xff0c;In-Vehicle Infotainment&#xff09;中常见的一个用户体验优化功能。它主要是为了简化蓝牙音乐播放流程、减少用户操作&#xff0c;提升使用便捷性。 一、什么是“切源”&#xff1f; 在车机系统中&#…...

眼镜店哪个品牌好,你会选择哪一款眼镜

有些人买眼睛是为了耍帅&#xff0c;有些人买眼镜&#xff0c;可能就是为了调节视力。现在手机以及其他的电子产品越来越普及&#xff0c;近视眼的人群是越来越多了&#xff0c;那么要准备去配眼镜的话&#xff0c;就要找到一个正规的眼镜店&#xff0c;一起来了解一下眼镜店哪…...

基于EFISH-SCB-RK3576/SAIL-RK3576的畜禽养殖监控仪技术方案‌

&#xff08;国产化替代J1900的农业物联网解决方案&#xff09; 一、硬件架构设计‌ ‌多源环境感知模块‌ ‌空气质量监测‌&#xff1a; 集成NH₃/CO₂/H₂S三合一气体传感器&#xff08;量程0-500ppm&#xff0c;精度2%FS&#xff09;&#xff0c;采样间隔≤1秒激光粉尘检测…...

linux - 权限的概念

目录 用户权限 超级用户与普通用户的区别 超级用户&#xff08;root&#xff09;&#xff1a; 普通用户&#xff1a; 切换用户身份 使用sudo执行高权限命令 用户管理 用户组管理 文件权限 文件访问者类别 基本权限 权限表示方法 权限修改 chmod chown chgrp u…...

LeRobot 框架的核心架构概念和组件(中)

本文档概述构成 LeRobot 框架的核心架构概念和组件。它介绍主要的子系统&#xff0c;并解释它们如何相互作用以实现机器人学习。 。。。。。。继续。。。。。。 环境接口 环境系统提供与模拟环境交互的统一接口。这些环境允许在部署到物理机器人之前&#xff0c;在受控环境中…...

鸿蒙5.0项目开发——鸿蒙天气项目的实现(主页1)

【高心星出品】 文章目录 页面效果&#xff1a;页面功能&#xff1a;页面执行流程&#xff1a;1. 页面初始化阶段2. 定位获取阶段3. 天气数据加载阶段 这个页面是整个天气应用的核心&#xff0c;集成了天气查询、定位、搜索等主要功能&#xff0c;提供了完整的天气信息服务。 …...

虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析

虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析1. UE中SceneCapture和UCameraComponent的关系是什么&#xff1f;Camera和SceneCapture2D的关系是什么1.1 UCameraComponen…...

【vim】--- vim 插件说明 超详细持续更新中

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】--- vim 插件说明 超详细持续更新中 开发环境一、vim 插件管理器1、Vim-Plug2…...

医学影像系统的集成与工作流优化

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

Vue 和 React 状态管理的性能优化策略对比

一、Vue 状态管理优化策略 合理使用 Vuex 模块化 将全局状态拆分为模块&#xff0c;按需加载&#xff0c;避免单一 Store 文件过大。通过命名空间隔离状态&#xff0c;减少状态冗余和无效更新。 const moduleA { namespaced: true, state: { /* ... */ } }; const store new …...

python打包exe报错:处理文件时错误:Excel xlsx file; not supported

背景&#xff1a;最近用python写一个excel解析工具&#xff0c;然后打包成exe可执行文件的时候&#xff0c;遇到这样的问题 1.在我自己编译器运行是可以正常将上传后的excel进行解析&#xff0c;但是在打包成exe后&#xff0c;就无法正常解析excel 问题排查&#xff1a; 1.切换…...

libmemcached库api接口讲解一

前言&#xff1a;好多接口的用法都不怎么会&#xff0c;得学习一下具体的用法 memcached_st ✅ 一个连接 memcached 服务集群的“客户端实例”对象&#xff0c;用于管理连接、执行读写操作、设置行为、维护哈希环等一切功能。 它在使用中通常通过下面的方式创建&#xff1a; …...

【RabbitMQ】发布确认机制的具体实现

文章目录 模式介绍建立连接单独确认代码实现逻辑运行结果 批量确认代码实现逻辑运行结果 异步确认实现逻辑介绍代码实现逻辑运行结果 三种策略对比以及完整代码 模式介绍 作为消息中间件&#xff0c;都会面临消息丢失的问题&#xff0c;消息丢失大概分为三种情况&#xff1a; …...

RabbitMQ是什么?应用场景有哪些?

RabbitMQ 是一款开源的消息代理中间件,基于 AMQP(高级消息队列协议)实现,用于在分布式系统中进行异步通信和消息传递。它通过将消息的发送者和接收者解耦,提高了系统的可扩展性、可靠性和灵活性。 核心特点 多协议支持:不仅支持 AMQP,还兼容 STOMP、MQTT 等多种消息协议…...

数学实验(Matlab符号运算)

一、符号对象的建立 Matlab符号运算特点 计算以推理方式进行&#xff0c;因此不受计算误差积累所带来的困扰 符号计算指令的调用比较简单&#xff0c;与数学教科书上的公式相近 Matlab符号运算举例 符号对象与符号表达式 在进行符号运算时&#xff0c;必须先定义基本的符号…...

使用 hover-class 实现触摸态效果 - uni-app 教程

目录 一、什么是 hover-class 二、常用组件支持 hover-class 三、基本 效果说明&#xff1a; 四、配合 hover-start-time 和 hover-stay-time 五、注意事项 六、实践建议 在移动端开发中&#xff0c;良好的用户交互体验尤为重要&#xff0c;点击或长按某个按钮时&#x…...

# 深度剖析LLM的“大脑”:单层Transformer的思考模式探索

简单说一下哈 —— 咱们打算训练一个单层 Transformer 加上稀疏自编码器的小型百万参数大型语言模型&#xff08;LLM&#xff09;&#xff0c;然后去调试它的思考过程&#xff0c;看看这个 LLM 的思考和人类思考到底有多像。 LLMs 是怎么思考的呢&#xff1f; 开源 LLM 出现之后…...

Git仓库迁移

前言 前面我讲了GitLab搭建与使用(SSH和Docker)两种方式&#xff0c;那么就会延伸出来一个情况&#xff1a;Git仓库迁移虽然这种情况很少发生&#xff0c;但是我自己公司近期要把 阿里云迁移到华为云&#xff0c;那么放在上面的Git仓库也要全量迁移下面我就写了一个脚本演示&am…...

Windows避坑部署CosyVoice多语言大语言模型

#工作记录 前言 在实际部署与应用过程中&#xff0c;项目的运行环境适配性对其稳定性与功能性的发挥至关重要。CosyVoice 项目虽具备强大的语音处理能力&#xff0c;但受限于开发与测试环境的侧重方向&#xff0c;其对运行环境存在特定要求。 该项目在 Linux 和 Docker 生态…...

《实现模式》以Golang视角解读 价值观和原则 day 1

为什么阅读实现模式&#xff1f; 为什么阅读《实现模式》&#xff1f;Kent Beck 的《实现模式》其核心思想——编写清晰、易于理解且易于维护的代码&#xff0c;对于软件工程的新手而言&#xff0c;直接深入复杂的设计模式或架构理念可能会感到困惑。《实现模式》则弥合了设计…...

解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南

[目录] 0.行文概述 1.PicGo图片上传失败 2.*关于在Vscode中Marp图片的编译问题* 3.总结与启示行文概述 写作本文的动机是本人看到了Awesome Marp&#xff0c;发现使用 Markdown \texttt{Markdown} Markdown做PPT若加持一些 CSS , JavaScript \texttt{CSS},\texttt{JavaScript} …...