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

.NET MCP 文档

MCP 概述

MCP(Model Context Protocol)是由 Anthropic 推出的一种开放协议,类似 AI 的 USB-C 扩展坞,用于在大模型和数据源之间建立安全的通信(授权),让 AI 应用能够安全地访问和操作本地或远程数据,例如操作本地文件、浏览器和 Web 服务。

为了更好地理解 MCP,我们可以用一个简单的类比:如果把 AI 比作电脑主机,那么 MCP 就相当于 USB 协议,而 MCP Server 则类似于各种 USB 设备(如摄像头、麦克风等)。通过实现 MCP Server,我们可以让 AI 轻松连接到各种数据源,大大扩展其功能范围。

MCP 协议的核心价值在于标准化了 AI 模型与外部工具和数据源的交互方式,使开发者能够创建可被多种 AI 应用程序使用的工具和服务。这种标准化的接口极大地简化了 AI 应用的开发过程,并提高了工具和服务的可重用性。

MCP 的主要特点

  • 标准化的工具调用接口

  • 安全的双向通信

  • 支持多种传输方式(stdio、SSE、WebSocket 等)

  • 丰富的数据类型支持

  • 与主流 LLM 的无缝集成

  • 跨平台和跨语言支持

MCP 服务器

MCP 服务器是实现 MCP 协议的服务端,负责注册和提供工具,处理客户端的工具调用请求,并返回结果。服务器可以使用多种传输方式与客户端通信,如标准输入输出、SSE 或 WebSocket。

MCP 客户端

MCP 客户端是实现 MCP 协议的客户端,负责连接到 MCP 服务器,获取可用工具列表,调用工具,并处理返回结果。客户端通常与 LLM 集成,使 LLM 能够使用 MCP 工具。

.NET MCP 实现项目对比

在 .NET 生态系统中,目前有几个主要的 MCP 实现项目,它们各有特点。以下是这些项目的对比分析:

官方 C# SDK:csharp-sdk

这是 Model Context Protocol(MCP)官方提供的 C# SDK,为 MCP 服务器和客户端提供简单易用的接口,主要由微软维护。该项目已经成为 MCP 社区的官方 SDK 项目,最近发布了 0.1.0-preview 版本。

GitHub 仓库: 

https://github.com/modelcontextprotocol/csharp-sdk

MCPSharp

MCPSharp 是一个 .NET 库,旨在帮助开发者构建 Model Context Protocol(MCP)服务器和客户端。它提供了创建 MCP 合规的工具和函数、连接现有 MCP 服务器、将 .NET 方法暴露为 MCP 端点、处理 MCP 协议细节和 JSON-RPC 通信等功能。

特点:
  • 与 Microsoft.Extensions.AI 集成

  • Semantic Kernel 支持

  • 动态工具注册

  • 工具变更通知

  • 复杂对象参数支持

  • 错误处理

  • 易用的基于属性的 API

  • 内置 JSON-RPC 支持

  • 自动参数验证和类型转换

GitHub 仓库: 

https://github.com/afrise/MCPSharp

mcpdotnet

mcpdotnet 是一个 .NET 实现的模型上下文协议(MCP),使 .NET 应用程序能够与 MCP 客户端和服务器进行交互。该项目已经进入归档状态,相关的开发工作都集中到了官方的 csharp-sdk。

特点:
  • 支持多种 MCP 功能

  • 遵循规范的实现

  • 提供全面的日志支持

  • 兼容 .NET 8.0 及以上版本

GitHub 仓库: 

https://github.com/PederHP/mcpdotnet

ModelContextProtocol.NET

ModelContextProtocol.NET 是一个 C# SDK,实现了模型上下文协议(MCP)。

特点:
  • 标准输入输出通信

  • 工具集成框架

  • 原生 AOT 兼容

  • 计算器演示实现

  • 开发中功能:WebSocket 支持、资源管理和提示系统

GitHub仓库:

https://github.com/salty-flower/ModelContextProtocol.NET

服务器端实现

基本结构

使用官方的 C# SDK (csharp-sdk) 实现 MCP 服务器的基本结构如下:

这段代码展示了如何创建一个基本的 MCP 服务器,它使用标准输入输出(stdio)作为传输方式,并自动注册当前程序集中的所有工具。

关键组件说明:
  • AddMcpServer()

     - 向依赖注入容器添加 MCP 服务器服务

  • WithStdioServerTransport()

     - 配置服务器使用标准输入输出作为传输方式

  • WithToolsFromAssembly()

     - 自动注册当前程序集中的所有 MCP 工具

工具注册与实现

在 MCP 服务器中,工具是通过特性(Attribute)来注册的。下面是一个简单的工具实现示例:

[McpServerToolType]
public static class EchoTool
{[McpServerTool, Description("Echoes the message back to the client.")]public static string Echo(string message) => $"hello {message}";
}

更复杂的工具可以使用依赖注入和服务器交互:

在 QuickstartWeatherServer 示例中,我们可以看到更实际的工具实现:

[McpServerToolType]
public static class WeatherTools
{[McpServerTool, Description("Get weather alerts for a US state.")]public static async Task GetAlerts(HttpClient client,[Description("The US state to get alerts for.")] string state){var jsonElement = await client.GetFromJsonAsync($"/alerts/active/area/{state}");var alerts = jsonElement.GetProperty("features").EnumerateArray();if (!alerts.Any()){return "No active alerts for this state.";}return string.Join("\n-\n", alerts.Select(alert =>{JsonElement properties = alert.GetProperty("properties");return $"""Event: {properties.GetProperty("event").GetString()}""";}));}
}

工具注册特性说明:
  • [McpServerToolType]

     - 标记一个类包含 MCP 工具

  • [McpServerTool]

     - 标记一个方法作为 MCP 工具

  • [Description]

     - 提供工具和参数的描述信息

服务配置

MCP 服务器的配置主要通过 .NET 的依赖注入系统完成。以下是一个配置 HttpClient 的示例:

builder.Services.AddSingleton(_ =>
{var client = new HttpClient() { BaseAddress = new Uri("https://api.weather.gov") };client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("weather-tool", "1.0"));return client;
});

​​​​

高级配置选项:
  • 自定义传输方式:除了标准的 stdio 传输方式,还可以配置 SSE 或 WebSocket 传输

  • 工具过滤:可以选择性地注册特定的工具,而不是注册所有工具

  • 中间件:可以添加自定义中间件来处理请求和响应

  • 错误处理:可以配置全局错误处理策略

  • 日志记录:可以配置详细的日志记录选项

客户端实现

连接到 MCP 服务器

使用官方的 C# SDK 连接到 MCP 服务器的基本代码如下:​​​​​​​

var mcpClient = await McpClientFactory.CreateAsync(new()
{Id = "demo-server",Name = "Demo Server",TransportType = TransportTypes.StdIo,TransportOptions = new(){["command"] = command,["arguments"] = arguments,}
});

这段代码创建了一个 MCP 客户端,并连接到指定的服务器。TransportType 指定了通信方式(这里是标准输入输出),TransportOptions 提供了额外的配置选项。

支持的传输类型:
  • TransportTypes.Stdio

     - 使用标准输入输出进行通信

  • TransportTypes.Sse

     - 使用服务器发送事件 (SSE) 进行通信

  • TransportTypes.WebSocket

     - 使用 WebSocket 进行通信

工具调用

连接到服务器后,客户端可以列出可用的工具并调用它们:​​​​​​​

var tools = await mcpClient.ListToolsAsync();
foreach (var tool in tools)
{Console.WriteLine($"Connected to server with tools: {tool.Name}");
}
// 调用工具示例
var result = await mcpClient.CallToolAsync("echo",new Dictionary() { ["message"] = "Hello MCP!" },CancellationToken.None);
// 输出结果
Console.WriteLine(result.Content.First(c => c.Type == "text").Text);

​​​​​​​

工具调用参数说明:
  • toolName

     - 要调用的工具名称

  • parameters

     - 工具参数字典,键为参数名,值为参数值

  • cancellationToken

     - 取消令牌,用于取消操作

结果处理:

工具调用结果包含一个 Content 集合,每个内容项都有一个 Type 和一个 Text。常见的内容类型包括:

  • text

     - 纯文本内容

  • application/json

     - JSON 格式的内容

  • image/*

     - 图像内容(如 image/png、image/jpeg 等)

与 Claude 模型集成

MCP 客户端可以与 Claude 等 AI 模型集成,使模型能够使用 MCP 工具:​​​​​​​

var anthropicClient = new AnthropicClient(new APIAuthentication(builder.Configuration["ANTHROPIC_API_KEY"])).Messages.AsBuilder().UseFunctionInvocation().Build();
var options = new ChatOptions
{MaxOutputTokens = 1000,ModelId = "claude-3-5-sonnet-20240229",Tools = [.. tools]
};
// 使用 Claude 模型处理用户查询
await foreach (var message in anthropicClient.GetStreamingResponseAsync(query, options))
{Console.Write(message);
}

集成步骤说明:
  1. 创建 Anthropic 客户端并配置 API 密钥

  2. 启用函数调用功能

  3. 创建聊天选项,包括模型 ID、最大输出令牌数和工具列表

  4. 使用流式响应 API 处理用户查询

  5. 处理模型返回的消息,包括工具调用和文本响应

Cursor 配置与集成

MCP Server 添加步骤

在 Cursor 中配置 MCP Server 的步骤如下:

  1. 导航至 Cursor Settings > FeaturesMCP

  2. 点击+ Add New MCP Server按钮

  3. 在配置窗口中:

    • 选择传输类型

    • 配置服务器信息

  4. 完成添加后,服务器将显示在 MCP 服务器列表中

  5. 如需更新工具列表,可能需要手动点击刷新按钮

Cursor MCP 服务器配置界面示例

图片

传输类型配置

Cursor 支持两种主要的传输类型:

stdio

用于标准输入输出通信,适用于本地运行的 MCP 服务器。

配置方式:输入可执行命令
示例:

npx -y @smithery/cli@latest run @mzxrai/mcp-webresearch --config "{}"
sse

用于服务器发送事件通信,适用于远程 MCP 服务器。

配置方式:输入服务器 URL
示例:

https://example.com/mcp

工具使用方法

在 Cursor 的 Composer 中使用 MCP 工具时,你可以:

  • 让 Composer Agent 自动选择合适的工具

  • 明确指定使用特定工具

  • 查看工具调用的详细信息

  • 对工具调用进行管理:

    • 检查调用参数

    • 决定是否批准调用

    • 查看调用结果

工具使用示例:

用户: 搜索关键词 cursor mcp server,列出 Top 5 热度的关键词

Claude: 我将使用 Web Search 工具来搜索这些关键词。​​​​​​​

工具调用:Web Search参数:{"query": "cursor mcp server"}

Claude: 根据搜索结果,关于 "cursor mcp server" 的 Top 5 热度关键词是:

  1. Model Context Protocol (MCP) Integration

  2. Custom MCP Server Development

  3. MCP Server Templates

  4. Database Integration

  5. Desktop Application Integration

最佳实践与示例

服务器端最佳实践

  • 使用依赖注入:

    利用 .NET 的依赖注入系统管理服务和工具的依赖关系。

  • 适当的错误处理:

    确保工具实现中包含适当的错误处理逻辑。

  • 详细的工具描述:

    使用Description特性为工具和参数提供清晰的描述。

  • 模块化设计:

    将不同功能的工具分组到不同的类中。

客户端最佳实践

  • 异步操作:

    使用异步方法处理 MCP 客户端的所有操作。

  • 资源管理:

    确保适当释放客户端资源。

  • 错误处理:

    实现适当的错误处理逻辑,处理服务器连接和工具调用中可能出现的问题。

  • 用户体验:

    提供清晰的用户反馈,特别是在工具调用过程中。

集成示例

以下是一个将 MCP 客户端与 Claude 模型集成的完整示例:​​​​​​​

using Anthropic.SDK;
using Microsoft.Extensions.AI;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelContextProtocol.Client;
using ModelContextProtocol.Protocol.Transport;
using System.ComponentModel;
var builder = Host.CreateApplicationBuilder(args);
builder.Configuration.AddEnvironmentVariables().AddUserSecrets();
var (command, arguments) = GetCommandAndArguments(args);
await using var mcpClient = await McpClientFactory.CreateAsync(new()
{Id = "demo-server",Name = "Demo Server",TransportType = TransportTypes.StdIo,TransportOptions = new(){["command"] = command,["arguments"] = arguments,}
});
var tools = await mcpClient.ListToolsAsync();
foreach (var tool in tools)
{Console.WriteLine($"Connected to server with tools: {tool.Name}");
}
var anthropicClient = new AnthropicClient(new APIAuthentication(builder.Configuration["ANTHROPIC_API_KEY"])).Messages.AsBuilder().UseFunctionInvocation().Build();
var options = new ChatOptions
{MaxOutputTokens = 1000,ModelId = "claude-3-5-sonnet-20240229",Tools = [.. tools]
};
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("MCP Client Started!");
Console.ResetColor();
PromptForInput();
while(Console.ReadLine() is string query && !("exit".Equals(query, StringComparison.OrdinalIgnoreCase)))
{if (string.IsNullOrWhiteSpace(query)){PromptForInput();continue;}await foreach (var message in anthropicClient.GetStreamingResponseAsync(query, options)){Console.Write(message);}Console.WriteLine();PromptForInput();
}
static void PromptForInput()
{// 提示用户输入
}
static (string, string) GetCommandAndArguments(string[] args)
{// 解析命令行参数
}

这个示例展示了如何创建 MCP 客户端,连接到服务器,获取可用工具,并将这些工具与 Claude 模型集成,使模型能够使用这些工具来响应用户查询。

结论

本文档详细介绍了 .NET 使用 MCP 的相关内容,包括服务器端实现、客户端实现以及 Cursor 集成配置等方面。通过使用 MCP,开发者可以创建强大的工具和服务,使 AI 模型能够安全地访问和操作各种数据源。

随着 MCP 生态系统的不断发展,我们可以期待更多的功能和改进。官方的 C# SDK 提供了一个稳定的基础,使 .NET 开发者能够轻松地实现 MCP 服务器和客户端。

我们鼓励开发者探索 MCP 的各种可能性,创建创新的工具和服务,并为 MCP 社区做出贡献。

相关文章:

.NET MCP 文档

MCP 概述 MCP(Model Context Protocol)是由 Anthropic 推出的一种开放协议,类似 AI 的 USB-C 扩展坞,用于在大模型和数据源之间建立安全的通信(授权),让 AI 应用能够安全地访问和操作本地或远程…...

07软件测试需求分析案例-修改用户信息

修改用户信息是后台管理菜单的一个功能模块,只有admin才有修改权限。包括查询用户名进行显示用户相关信息,并且修改用户相关信息的功能。 1.1 通读文档 通读需求规格说明书是提取信息,提出问题,输出具有逻辑、规则、流程的业务…...

第九届“创客中国”中小企业创新创业大赛总决赛企业组三等奖项目—基于AI智能代码疫苗技术的数字供应链安全解决方案

项目名称:基于AI智能代码疫苗技术的数字供应链安全解决方案 企业名称:北京安普诺信息技术有限公司(悬镜安全) 项目简介: ‍‍‍‍‍ 基于AI智能代码疫苗技术的数字供应链安全解决方案,悬镜安全在全球范围内首创…...

企业级RAG行业应用落地方案——阿里云百炼

行业痛点分析 这张图主要围绕“行业痛点锚定”展开,通过雷达图和表格结合的方式,分析电商选品在不同维度下的情况: 分析对象:聚焦电商选品。维度展示:从可结构化程度、重复性、数据可得性、人机互动性、AI带来的价值这…...

Mac切换node版本

Mac切换node版本 1.首先安装n模块: sudo npm install -g n 2.升级node.js到最新稳定版 sudo n stable 3.升级到最新版 sudo n latest 4.n后面也可以跟随版本号,升级到任意版本 sudo n v0.10.26或sudo n 0.10.26 5.切换使用版本 sudo n 7.10.0 6.删除制定版本…...

从零开始学A2A一:A2A 协议概述与核心概念

A2A 协议概述与核心概念 学习目标 基础理解 掌握A2A协议的基本概念和背景理解协议的设计原则和核心思想了解协议在AI领域的重要性 技术掌握 熟悉A2A协议的核心功能组件掌握能力发现和任务管理机制理解多模态交互和安全通信原则 实践应用 能够设计基于A2A的智能体系统掌握协议…...

科普:如何通过ROC曲线,确定二分类的“理论阈值”

在二分类问题中,已知预测概率(如逻辑回归、神经网络输出的概率值)时,阈值的选择直接影响分类结果(正/负样本判定)。 一、实践中的阈值选择方法 1. 基于业务目标的调整 最大化准确率:适用于样…...

Cherry Studio + MCP,从0到1保姆教程,3个场景体验

📺 详细操作以视频方式呈现,视频地址周五会更新出来 💯 鉴于很多观众网络环境受限,文末提供所需安装文件网盘分享 💬 什么是 MCP ? MCP(Model Context Protocol,MCP)模型…...

Docker学习笔记-docker安装、删除

一、在centOS 7中docker的默认安装目录 # Docker 主配置文件目录 ls /etc/docker# Docker 数据目录(镜像、容器、卷等) ls /var/lib/docker# Docker 可执行文件路径 which docker # 输出类似 /usr/bin/docker 二、docker文件目录说明 目录/文件用途/…...

visual studio 常用的快捷键(已经熟悉的就不记录了)

以下是 Visual Studio 中最常用的快捷键分类整理,涵盖代码编辑、调试、导航等核心场景: 一、生成与编译 ​生成解决方案 Ctrl Shift B 一键编译整个解决方案,检查编译错误(最核心的生成操作)​编译当前文件 Ctrl F…...

使用人工智能大模型腾讯元宝,如何做课题研究?

今天我们学习使用人工智能大模型腾讯元宝,如何做课题研究? 手把手学习视频地址:https://edu.csdn.net/learn/40402/666424 在腾讯元宝对话框中输入如何协助老师做课题(申报书、开题报告、中期报告、结题报告)&#x…...

开源模型应用落地-模型上下文协议(MCP)-第三方MCP Server实战指南(五)

一、前言 在AI技术高速发展的2025年,如何让大语言模型(LLM)更灵活地调用外部工具与数据,成为开发者关注的焦点。​模型上下文协议(MCP)​作为AI与外部资源的“万能接口”,通过标准化交互框架解决了传统集成中的碎片化问题。而第三方MCP Server的引入,进一步降低了开发门…...

python每日一练

题目一 输入10个整数,输出其中不同的数,即如果一个数出现了多次,只输出一次(要求按照每一个不同的数第一次出现的顺序输出)。 解题 错误题解 a list(map(int,input().split())) b [] b.append(a[i]) for i in range(2,11):if a[i] not in b:b.append(a[i]) print(b)但是会…...

跨境贸易之常见的贸易术语

外贸出口中经常会听到FOB、CIF、DDP各种术语,这些都是什么意思呢? 今天我们来介绍一下他们的确切含义。一般来说你听到的这些话语都是表示交货的方式。 如果普通的贸易过程大家一听就明白的,就是货到付款,款到发货,支…...

KingbaseES之KDts迁移SQLServer

项目适配迁移SQLServer至金仓,今天写写KDts-WEB版迁移工具迁移SQLServer至KingbaseES的步骤,以及迁移注意事项. SQLServer版本:SQLServer2012 KingbaseES版本:V009R004C011(SQLServer兼容版) --1.进入数据库客户端工具KDTS工具目录,启动KDts服务: [king…...

Rust编程学习(一): 变量与数据类型

我们先从Rust基本的变量声明定义与数据类型开始学习,了解这门语言基本特性。 1 变量与可变性 变量声明 变量声明以let关键字开头,x为变量名,变量名后紧跟冒号和数据类型,但是rust编译器有自动推导变量类型的功能,可以省略显式的声…...

Java 在人工智能领域的突围:从企业级架构到边缘计算的技术革新

一、Java AI 的底层逻辑:从语言特性到生态重构 在 Python 占据 AI 开发主导地位的当下,Java 正通过技术重构实现突围。作为拥有 30 年企业级开发经验的编程语言,Java 的核心优势在于强类型安全、内存管理能力和分布式系统支持,这…...

[极客大挑战 2019]HardSQL1

打开网页,貌似存在SLQ注入,尝试闭合单引号 才生报错信息,但是尝试联合注入 不出意外应该是被过滤了,没法使用,可以考虑一下报错注入 这里可以使用字典爆破一下,利用页面返回情况,看看哪些关键词…...

深入剖析C++中 String 类的模拟实现

目录 引言 一、基础框架搭建 成员变量与基本构造函数 析构函数 二、拷贝与赋值操作 深拷贝的拷贝构造函数 赋值运算符重载 三、字符串操作功能实现 获取字符串长度 字符串拼接 字符串比较 字符访问 四、迭代器相关实现(简单模拟) 迭代器类型…...

KWDB创作者计划— KWDB技术范式革命:从数据存储到认知进化的架构跃迁

引言:数据库的认知觉醒 在AIoT设备数量突破万亿、边缘计算节点算力总和超越云端的2025年,传统数据库的"存储-计算"二元结构正面临认知维度缺失的困境。当工业数字孪生需要实时推演百万设备状态,城市大脑需处理多模态时空数据时&…...

【后端开发】Spring配置文件

文章目录 配置文件properties配置文件基本语法读取配置文件 yml配置文件基本语法读取配置文件配置空字符串及null单双引号配置对象配置集合配置Map 优缺点优点缺点 配置文件 硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中,也就是常说的"代码写死&q…...

探讨HMI(人机界面)设计原则,如何通过优秀的设计提升操作效率和用户体验

在物联网与人工智能深度渗透的今天,人机界面(Human-Machine Interface, HMI)已成为连接数字世界与物理世界的神经末梢。优秀的HMI设计不仅关乎视觉美感,更是认知工程、信息架构与交互范式的协同创新。本文从神经认知科学原理出发&…...

网络7 配置网卡 路由表

我配置了两张网卡,一个是仅主机模式,一个是NAT模式。刚才NAT模式动态配置下,ping百度ping的通,路由表中只显示NAT的网关。我把NAT模式修改为静态IP,路由表中显示仅主机模式的网关和NAT模式的网关,ping百度ping不通了 …...

InnoDB的MVCC实现原理?MVCC如何实现不同事务隔离级别?MVCC优缺点?

概念 InnoDB的MVCC(Multi-Version Concurrency Control)即多版本并发控制,是一种用于处理并发事务的机制。它通过保存数据在不同时间点的多个版本,让不同事务在同一时刻可以看到不同版本的数据,以此来减少锁竞争&…...

同构应用开发

以下是关于 同构应用(Isomorphic/Universal Application)开发 的系统知识梳理,涵盖核心概念、技术实现、性能优化及工程实践,帮助我们全面掌握这一现代Web开发范式: 一、同构应用核心概念 1. 定义与价值 定义:同一套代码在服务端(Node.js)和客户端(浏览器)运行,实现…...

如何制定有效的风险应对计划

制定有效的风险应对计划的核心在于: 识别潜在风险、评估风险的影响与概率、选择合适的应对策略、建立动态监控和反馈机制。 其中,识别潜在风险是最为关键的第一步。只有准确识别出可能的风险,才能在后续的评估、应对、监控等环节中做到有的放…...

使用wpa_cli和wpa_supplicant配置Liunx开发板的wlan0无线网

目录 1 简单介绍下wpa_cli和wpa_supplicant 1.1 wpa_supplicant 简介 1.2 wpa_cli 简介 1.3 它们之间的关系 2 启动wpa_supplicant 3 使用rz工具把wpa_cli命令上传到开发板 4 用wpa_cli配置网络 参考文献: 1 简单介绍下wpa_cli和wpa_supplicant 1.1 wpa_su…...

深度学习模型的概述与应用

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...

基于Ubuntu系统搭建51单片机开发环境的详细教程

一、环境搭建 1. 安装SDCC编译器 SDCC(Small Device C Compiler)是Linux下常用的开源51单片机编译器,支持多种芯片架构。 安装命令: sudo apt update sudo apt install sdcc 验证安装:输入 sdcc -v,若显…...

通义灵码助力Neo4J开发:快速上手与智能编码技巧

在 Web 应用开发中,Neo4J 作为一种图数据库,用于存储节点及节点间的关系。当图结构复杂化时,关系型数据库的查找效率会显著降低,甚至无法有效查找,这时 Neo4J 的优势便凸显出来。然而,由于其独特的应用场景…...

项目班——0408

qt的多线程开发 一、并发、并行的概念: 1. 并发:多个任务在同一时间段内交替执行(可能共享同一资源),但不一定同时发生。 核心思想:通过快速切换任务(例如时间片轮转)模拟“同时进…...

【Linux】42.网络基础(2.4)

文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…...

大模型在直肠癌诊疗全流程预测及应用研究报告

目录 一、引言 1.1 研究背景与目的 1.2 国内外研究现状 1.3 研究方法与创新点 二、大模型预测直肠癌的原理与技术基础 2.1 大模型技术概述 2.2 用于直肠癌预测的数据来源 2.3 模型构建与训练过程 三、术前预测 3.1 肿瘤分期预测 3.1.1 基于影像组学的 T 分期预测模型…...

Ceph块存储

#### 一、Ceph块存储 ##### 镜像快照管理 > 实现数据备份、恢复和测试等操作,而不影响原始数据,提高系统的可靠性和可用性。 shell # 创建镜像 rbd create img1 --size 10G # 映射镜像到本地并格式化挂载 rbd map img1 mkfs -t xfs /dev/rbd0 moun…...

【转载翻译】Open3D和PCL的一些比较

转自个人博客:【转载翻译】Open3D和PCL的一些比较 本人在逛Github时,发现一个解答Open3D和PCL对比的小文章,还挺有参考价值的 原文:https://github.com/LaplaceKorea/investigate_open3d_vs_pcl/blob/main/README.rst#whats-the-s…...

ebpf: CO-RE, BTF, and Libbpf(二)

本文内容主要来源于Learning eBPF,可阅读原文了解更全面的内容。 本文涉及源码也来自于书中对应的github:https://github.com/lizrice/learning-ebpf/ 概述 上篇文章主要讲了CO-RE最关键的一环:BTF,了解其如何记录内核中的数据结…...

RHCE第五章:NFS服务器

一、NFS(network file system) 网络文件系统:在互联网中共享服务器中的文件资源(用于Linux主机共享文件的协议)。 使用nfs服务需要安装:nfs-utils 以及 rpcbind nfs-utils : 提供nfs服务的程序 rpcbind :…...

qt(vs2010) 手动配置moc生成规则

在 Visual Studio 2010 中写QT项目时,有时需要 手动配置 MOC 生成规则 操作步骤: 右键 .h 文件 → Properties。在 Configuration Properties > Custom Build Tool 中: Command Line:"$(QTDIR)\bin\moc.exe" "%(FullPath)…...

mongodb 安装配置

1.下载 官网下载地址:MongoDB Community Download | MongoDB 2.使用解压包 解压包安装:https://pan.baidu.com/s/1Er56twK9UfxoExuCPlJjhg 提取码: 26aj 3.配置环境: (1)mongodb安装包位置: &#xf…...

Java多态课堂练习题

Java多态课堂练习题 题目:动物乐园的多态展示 背景设定: 设计一个动物乐园程序,展示不同类型动物的行为特点,要求使用多态特性实现。 1. 基础类设计(已给出部分代码) // 基类:动物 abstract…...

Android Studio 实现自定义全局悬浮按钮

文章目录 一、基础实现方案1. 使用 WindowManager 实现全局悬浮窗2. 布局文件 (res/layout/floating_button.xml)3. 圆形背景 (res/drawable/circle_background.xml)4. 启动服务 二、权限处理1. AndroidManifest.xml 中添加权限2. 检查并请求权限 三、高级功能扩展1. 添加动画效…...

Android Studio 中文字大小的单位详解

文章目录 一、Android 中的尺寸单位1. dp (Density-independent Pixels - 密度无关像素)2. sp (Scale-independent Pixels - 可缩放像素)3. px (Pixels - 像素)4. pt (Points - 磅)5. mm (Millimeters - 毫米) 和 in (Inches - 英寸) 二、文字大小单位的最佳实践1. 始终使用 sp…...

Project ERROR: liblightdm-qt5-3 development package not found问题的解决方法

问题描述:使用make命令进行ukui-greeter-Debian构建时出现Project ERROR: liblightdm-qt5-3 development package not found错误,具体如图: 问题原因:缺乏liblightdm-qt5-3 development软件包 解决方法:安装liblightd…...

基于QT(C++)+SQLServer实现(WinForm)超市管理系统

超市库存管理系 使用 QT 开发,SQLserver 数据库配置 ODBC 数据源:QSQLServer 超市库存管理系统需求规格说明书 1 引言 校园超市的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理的渠道各有差异,各个校园超市之间的管理体制…...

06 - 多线程-JUC并发编程-原子类(二)

上一章,讲解java (java.util.concurrent.atomic) 包中的 支持基本数据类型的原子类,以及支持数组类型的原子类,这一章继续讲解支持对实体类的原子类,以及原子类型的修改器。 还有最后java (java…...

HTML:网页的骨架 — 入门详解教程

HTML:网页的骨架 — 入门详解教程 HTML(HyperText Markup Language,超文本标记语言)是构建网页的基础语言,负责定义网页的结构和内容。无论是简单的个人博客,还是复杂的企业网站,HTML都是不可或…...

Oracle 分析函数(Analytic Functions)

Oracle 的分析函数(Analytic Functions)是一类特殊的函数,用于在查询结果的窗口(window)内执行计算(如排名、累计求和、移动平均等),不会聚合结果行,而是为每一行返回一个…...

全新电脑如何快速安装nvm,npm,pnpm

以下是全新电脑快速安装 nvm、npm 和 pnpm 的详细步骤,覆盖 Windows/macOS/Linux 系统: 一、安装 nvm(Node Version Manager) 1. Windows 系统 下载安装包: 访问 nvm-windows 官方仓库,下载 nvm-setup.ex…...

风丘年度活动:2025年横滨汽车工程展览会

| 展会简介: 2025年横滨汽车工程展览会,是由日本汽车工程师学会(JSAE)精心主办的一场行业盛会。预计届时将汇聚超550家参展商,设置1300个展位,展览面积超过20000平方米。展会受众广泛,面向汽车…...

springBoot接入文心一言

文章目录 效果接入步骤项目接入配置类:WenXinYiYan前端vue代码js代码 后端mapper层service层controller层 测试代码 效果 先来看一下最后实现的效果 (1)未点击前的功能页面 (2)点击后的页面 (3&#xff…...