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

服务端配置TCP探活,超出探活时间后的行为?

server端启动

(完整源码在最后)

配置探活

	setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int));   // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int));	 // 探测间隔10秒setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPCNT, &(int){5}, sizeof(int));	 // 最多探测5次

启动服务端

$ ./net 
Waiting for client connection...

client端telnet建连

telnet 9.134.128.138 8484

连接建立,server开始发送探活包

按配置,TCP_KEEPINTVL=10秒发送一次ack,server主动发起,client收到后回复ack。


15:45:03.184535 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:03.184799 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:45:13.424537 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:13.424808 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:45:23.664530 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:23.664769 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:45:33.904536 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:33.904779 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:45:44.144532 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:44.144774 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:45:54.384517 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:45:54.384755 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 015:46:04.624540 IP host-server.8484 > client-server.51878: Flags [.], ack 5, win 510, length 0
15:46:04.624798 IP client-server.51878 > host-server.8484: Flags [.], ack 1, win 502, length 0

客户端配置主动丢掉来自server的包

service iptables start
service iptables statusiptables -L -n --line-numbersudo iptables -A OUTPUT -p tcp --sport 8484 -j DROP

五次失败的探活后,server端报错

server端本来在read上等数据,探活又内核完成,探活失败后,read返回负数错误码。

perror(“read error”);打印结果:read error: Connection timed out

		ssize_t bytes_read = read(client_fd, buffer, BUFFER_SIZE - 1);if (bytes_read > 0){buffer[bytes_read] = '\0';printf("Received: %s\n", buffer);}else if (bytes_read == 0){printf("Connection closed by client[5](@ref)\n");break;}else{perror("read error");   // <<<<< 走这里break;}

server端完整代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/tcp.h>#define BUFFER_SIZE 256int main()
{int server_fd, client_fd;struct sockaddr_in server_addr, client_addr;socklen_t client_len = sizeof(client_addr);char buffer[BUFFER_SIZE];if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0){perror("socket creation failed");exit(EXIT_FAILURE);}server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = INADDR_ANY;server_addr.sin_port = htons(8484);if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0){perror("bind failed");close(server_fd);exit(EXIT_FAILURE);}if (listen(server_fd, 5) < 0){perror("listen failed");close(server_fd);exit(EXIT_FAILURE);}printf("Waiting for client connection...\n");if ((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_len)) < 0){perror("accept failed");close(server_fd);exit(EXIT_FAILURE);}int keepalive = 1;if (setsockopt(client_fd, SOL_SOCKET, SO_KEEPALIVE, &keepalive, sizeof(keepalive)) < 0){perror("setsockopt(SO_KEEPALIVE) failed");close(client_fd);close(server_fd);exit(EXIT_FAILURE);}setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int));   // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int));	 // 探测间隔10秒setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPCNT, &(int){5}, sizeof(int));	 // 最多探测5次printf("Client connected from %s:%d\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port));while (1){ssize_t bytes_read = read(client_fd, buffer, BUFFER_SIZE - 1);if (bytes_read > 0){buffer[bytes_read] = '\0';printf("Received: %s\n", buffer);}else if (bytes_read == 0){printf("Connection closed by client[5](@ref)\n");break;}else{perror("read error");break;}}close(client_fd);close(server_fd);return 0;
}

相关文章:

服务端配置TCP探活,超出探活时间后的行为?

server端启动 &#xff08;完整源码在最后&#xff09; 配置探活 setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int)); // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int)); // 探测间隔10秒…...

Eclipse安装和配置环境教程包含下载、安装、汉化(附安装包)

文章目录 前言一、JDK 安装二、Eclipse IDE 安装三、Eclipse软件汉化&#xff08;可选&#xff09;四、安装完成 前言 在编程的世界里&#xff0c;一款好的开发工具能让效率大幅提升&#xff0c;Eclipse 2024 便是这样的利器。不过&#xff0c;其安装过程涉及 JDK 配置、软件本…...

nginx简单命令启动,关闭等

启动命令 #启动nginx start nginx重启命令 比如修改了配置文件&#xff0c;用这个命令重启生效 #重启nginx nginx -s reload3&#xff0c;查看端口占用 #查看端口占用 netstat -aon4&#xff0c;关闭nginx 如果使用cmd命令窗口启动nginx&#xff0c; 关闭cmd窗口是不能…...

SQL------搭建sql靶场和打开sql靶场及报错解决

搭建sql靶场 1.下载安装包与文件 在官网上下载phpstudy网址&#xff1a; http://www.xp.cn 下载sqli-labs的网址&#xff1a; https://github.com/Audi-1/sqli-labs 2.下载小皮面板 打开安装包 安装&#xff0c;记得改自己想要安装的路径 打开php版本 记得下载5.几的版本&…...

对话式AI引擎:DeepSeek技术引领多模态交互新篇章

摘要 DeepSeek技术公司推出了一项创新服务——“对话式AI引擎”&#xff0c;仅需两行代码即可激活任意大型AI模型的语音对话功能。这项技术使得文本型AI模型迅速转变为具备实时语音对话能力的多模态交互模型&#xff0c;解决了大型AI模型在语音交互方面的不足&#xff0c;为AI行…...

在什么情况下需要使用光谱相机呢?

1.需要捕捉不可见光信息时 光谱相机不仅能捕捉可见光&#xff0c;还能记录红外、紫外等波段的光谱信息。以下场景尤其适用&#xff1a; 环境监测&#xff1a;检测水质、空气污染物等肉眼无法观察的物质。 农业监测&#xff1a;分析植物的近红外反射率&#xff0c;判断作物健…...

nnUNetv2用自己的数据集训练推理

有什么不懂的大家可以在评论区问我&#xff0c;我一定会积极回复哒&#xff01;&#xff01;&#xff01; 一、环境配置 首先创建一个虚拟环境 conda create -n nnunet python3.9 conda activate nnunet 然后在pytorch官网&#xff0c;安装pytorch&#xff0c;这里我安装的是…...

std::thread的同步机制

在 C 中&#xff0c;std::thread 用于创建和管理线程。为了确保多个线程能正确、安全地访问共享资源&#xff0c;避免数据竞争和不一致问题&#xff0c;需要使用同步机制。 互斥锁&#xff08;std::mutex&#xff09; 原理&#xff1a;互斥锁是一种最基本的同步原语&#xff…...

Matplotlib 绘图标记

Matplotlib 绘图标记 引言 Matplotlib 是一个功能强大的 Python 绘图库&#xff0c;广泛用于数据可视化。在 Matplotlib 中&#xff0c;绘图标记&#xff08;markers&#xff09;是数据点在图表中显示的方式。正确的使用绘图标记可以增强图表的可读性和美观性。本文将详细介绍…...

Web3.py 入门笔记

Web3.py 学习笔记 &#x1f4da; 1. Web3.py 简介 &#x1f31f; Web3.py 是一个 Python 库&#xff0c;用于与以太坊区块链进行交互。它就像是连接 Python 程序和以太坊网络的桥梁。 官方文档 1.1 主要功能 查询区块链数据&#xff08;余额、交易等&#xff09;发送交易与…...

《论企业集成平台的理解与应用》审题技巧 - 系统架构设计师

企业集成平台的理解与应用——论文写作框架 一、考点概述 本论题“企业集成平台的理解与应用”主要考察的是计算机软件测试工程师对于企业集成平台&#xff08;EIP&#xff09;的深入理解以及在实际项目中的应用能力。论题涵盖了以下几个核心内容&#xff1a; 首先&#xff…...

IO 和NIO有什么区别?

IO 与 NIO 的区别详解 Java 中的 IO&#xff08;Input/Output&#xff09; 和 NIO&#xff08;New IO 或 Non-blocking IO&#xff09; 是两种不同的输入输出处理机制&#xff0c;主要区别体现在设计模型、性能优化和应用场景上。以下是详细对比&#xff1a; 1. 阻塞与非阻塞模…...

音频进阶学习十六——LTI系统的差分方程与频域分析一(频率响应)

文章目录 前言一、差分方程的有理式1.差分方程的有理分式2.因果系统和ROC3.稳定性与ROC 二、频率响应1.定义2.幅频响应3.相频响应4.群延迟 总结 前言 本篇文章会先复习Z变换的有理分式&#xff0c;这是之前文章中提过的内容&#xff0c;这里会将差分方程和有理分式进行结合来看…...

Nginx面试宝典【刷题系列】

文章目录 1、nginx是如何实现高并发的&#xff1f;2、Nginx如何处理HTTP请求&#xff1f;3、使用“反向代理服务器”的优点是什么?4、列举Nginx服务器的最佳用途。5、Nginx服务器上的Master和Worker进程分别是什么?6、什么是C10K问题?7、请陈述stub_status和sub_filter指令的…...

【语法】C++的string

目录 4个默认成员函数 迭代器 string的扩容&#xff1a; capacity(): reserve(): resize()&#xff1a; 插入与删除&#xff1a; c_str: find()和substr: getline(): 在C语言中&#xff0c;要想存储一串字符&#xff0c;往往用的都是char arr[]&#xff0c;也就是字…...

支持selenium的chrome driver更新到133.0.6943.141

最近chrome释放新版本&#xff1a;133.0.6943.141 如果运行selenium自动化测试出现以下问题&#xff0c;是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…...

【2025.2.25更新】wordpress免费AI插件,文章内容、图片自动生成、视频自动生成、网站AI客服、批量采集文章,内置deepseek联网满血版

wordpress免费AI插件&#xff0c;文章内容、文章图片、长尾关键词、视频自动生成、网站AI客服、批量采集文章&#xff0c;插件已接入腾讯云大模型知识引擎xDeepSeek&#xff0c;基于腾讯云大模型知识引擎xDeepSeek可联网满血版&#xff0c;插件可实现文章生成、长尾关键词生成、…...

KylinSP3 | 防火墙和麒麟安全增强设置KySec

一、系统防火墙原理 麒麟操作系统从V10版本开始&#xff0c;默认使用了Firewalld防火墙&#xff0c;Firewalld是能提供动态管理的防火墙&#xff0c;支持网络/防火墙区域&#xff0c;用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时…...

DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集

诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友。我们会持续投入&#xff0c;力图把 Higress 变得更好&#xff0c;把 Higress 和 Spring AI Alibaba 社区和生态变得更加繁荣。 关于 Higress&#xff1a; Higress 除了作为云原生网关支持 Web 应用的部…...

sql server笔记

创建数据库 use master gocreate database stuuuuu//删除数据库if db_id ($$$) is not nullDrop database [$$$] go//新建表USE [studyTest] GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[Table_1]([id] [int] NULL,[name] [varchar](10) NULL ) ON…...

Vue 3 搭建前端模板并集成 Ant Design Vue(2025)

一、环境安装 截止2025.2.6 &#xff0c;官网发布的vue 3 稳定版本是 V 3.5.13 根据此时的官方文档要求&#xff0c;node 版本需要大于等于 V 18.3 于是使用 nvm 安装 v 20.18.0 二、创建项目 使用 Vue 官方推荐的脚手架 create-vue 快速创建 Vue3 的项目: 快速上手 | Vue.js…...

Word表格中如何只单独调整某一单元格宽度

大家好&#xff0c;我是小鱼。 在日常制作Word表格时&#xff0c;表格中不同单元格有时需要设置不同的宽度&#xff0c;但是很多小伙伴会发现想单独调整某一个单元格宽度时&#xff0c;发现其它单元格宽度也会发生变化。那么&#xff0c;到底怎么才能单独调整某一单元格宽度呢…...

CSS基础选择器和文字属性控制

CSS 层叠样式表(Cascading Style Sheets)&#xff0c;是一种样式表语言&#xff0c;它和HTML一起被用来描述网页的样式。HTML 主要用来定义网页的内容&#xff0c;也就是骨架&#xff0c;CSS 用来定义网页的样式。 CSS 是由选择器和属性声明组成的。选择器用来选择元素&#…...

保护密码等敏感信息的几个常用方法

概述 在生产环境&#xff0c;保护数据库账号密码等敏感信息是至关重要的&#xff0c;这些信息不能被所有研发工程师看见&#xff0c;本文介绍几种避免明文存储的常用方法。 方法1&#xff1a; 使用配置中心加密 适用场景&#xff1a;已采用配置中心&#xff08;如Spring Clou…...

【Golang 面试题】每日 3 题(六十七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…...

JavaScript系列(89)--前端模块化工程详解

前端模块化工程详解 &#x1f9e9; 前端模块化是现代Web开发的核心理念之一&#xff0c;它帮助我们组织和管理日益复杂的前端代码。本文将详细探讨前端模块化工程的各个方面&#xff0c;从基础概念到实际应用。 模块化概述 &#x1f31f; &#x1f4a1; 小知识&#xff1a;模…...

PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 TIFF

TIFF文件是高质量图像的首选。它们广泛用于印刷、存档和图形设计。企业通常需要转换PDF文档以获得更好的兼容性。了解如何以编程方式执行此转换可以节省时间和资源。在这篇教程中&#xff0c;我们将探讨如何使用 Python 将 PDF 转换为 TIFF。 本文涵盖以下主题&#xff1a; P…...

【开源免费】基于SpringBoot+Vue.JS美食烹饪互动平台(JAVA毕业设计)

本文项目编号 T 219 &#xff0c;文末自助获取源码 \color{red}{T219&#xff0c;文末自助获取源码} T219&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,加密压缩,带有压缩进度

前言 最近在做项目时遇到一个需求&#xff0c;需要将升级的文件压缩成zip&#xff0c;再进行传输&#xff1b; 通过网络调研&#xff0c;有许多方式可以实现&#xff0c;例如QT私有模块的ZipReader、QZipWriter&#xff1b;或者第三方库zlib或者libzip或者quazip等&#xff1…...

【GO】学习笔记

目录 学习链接 开发环境 开发工具 GVM - GO多版本部署 GOPATH 与 go.mod go常用命令 环境初始化 编译与运行 GDB -- GNU 调试器 基本语法与字符类型 关键字与标识符 格式化占位符 基本语法 初始值&零值&默认值 变量声明与赋值 _ 下划线的用法 字…...

docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结

官方网站 官方网址&#xff1a;etcd 二进制包下载&#xff1a;Install | etcd GitHub社区项目&#xff1a;etcd-io GitHub GitHub社区项目版本历史&#xff1a;Releases etcd-io/etcd GitHub 一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令…...

港科大提出开放全曲音乐生成基础模型YuE:可将歌词转换成完整歌曲

YuE是港科大提出的一个开源的音乐生成基础模型&#xff0c;专为音乐生成而设计&#xff0c;专门用于将歌词转换成完整的歌曲&#xff08;lyrics2song&#xff09;。它可以生成一首完整的歌曲&#xff0c;时长几分钟&#xff0c;包括朗朗上口的声乐曲目和伴奏曲目。YuE 能够模拟…...

Hive从入门到运用

hive简介 hive的设计思想&#xff08;本质是一个翻译器&#xff09; 上传安装包 解压&#xff0c;查看 运行hive&#xff08;一定要启动hadoop&#xff0c;是有依赖关系的。&#xff09; 测试启动方法&#xff0c;和建表 文件创建很上传到hdfs&#xff0c;直接上传到hive表的目…...

unity学习55:按钮 button

目录 1 按钮 button 1.1 按钮button 其实就是一个组合体 1.2 测试按钮&#xff0c;在UI中添加1个按钮 1.3 按钮的属性 2 按钮的图片属性 3 按钮的变换 transition 3.1 按颜色变换 3.2 按图片精灵变换 3.3 按动画变换 4 按钮的导航 5 按钮的事件和脚本 1 按钮 …...

《论基于构件的软件开发方法及其应用》审题技巧 - 系统架构设计师

软考论文写作框架&#xff1a;基于构件的软件开发方法及其应用 一、考点概述 本论题“基于构件的软件开发方法及其应用”主要考察的是软件工程专业中关于基于构件开发&#xff08;CBSD&#xff09;的深入理解与实践应用。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;…...

穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路

回溯算法的模版 void backtrack(vector<int>& path, vector<int>& choice, ...) {// 满⾜结束条件if (/* 满⾜结束条件 */) {// 将路径添加到结果集中res.push_back(path);return;}// 遍历所有选择for (int i 0; i < choices.size(); i) {// 做出选择…...

java23种设计模式-命令模式

命令模式&#xff08;Command Pattern&#xff09;学习笔记 1. 模式定义 行为型设计模式&#xff0c;将请求封装为对象&#xff0c;使请求的发送者与接收者解耦。支持请求的排队、记录、撤销/重做等操作。 2. 适用场景 ✅ 需要将操作参数化 ✅ 需要支持事务操作&#xff08…...

交流异步电动机PI双闭环SVPWM矢量控制Simulink

关注微♥“电机小子程高兴的MATLAB小屋”获取专属优惠 1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Ra&#xff09;软件。建议采用matlab2017 Ra及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff09; 2.仿真算法&#xff1a; (…...

利用 Open3D 保存并载入相机视角的简单示例

1. 前言 在使用 Open3D 进行三维可视化和点云处理时&#xff0c;有时需要将当前的视角&#xff08;Camera Viewpoint&#xff09;保存下来&#xff0c;以便下次再次打开时能够还原到同样的视角。本文将演示如何在最新的 Open3D GUI 界面&#xff08;o3d.visualization.gui / o…...

kiln微调大模型-使用deepseek R1去训练一个你的具备推理能力的chatGPT 4o

前言 随着deepseek的爆火&#xff0c;对于LLM的各种内容也逐渐步入我的视野&#xff0c;我个人认为&#xff0c;可能未来很长一段时间&#xff0c;AI将持续爆火&#xff0c;进入一段时间的井喷期&#xff0c;AI也会慢慢的走入我们每个家庭之中&#xff0c;为我们的生活提供便利…...

《从Kokoro看开源语音模型的“无限可能”》:此文为AI自动生成

开源语音模型 Kokoro 是一款轻量级、高性能的文本转语音(TTS)模型,以下是关于它的详细介绍: 核心优势 卓越的音质:即使参数规模仅 8200 万,也能生成自然流畅、富有表现力的语音。轻量高效:占用资源少,运行速度快,在 CPU 上即可实现近乎实时的语音生成,在 GPU 端则能…...

Spring 事务和事务传播机制(详解)

1 .事务 1.1.什么是事务&#xff1f; 事务是一组操作的集合,是不可分割的操作 事务作为一个整体&#xff0c;要不同时完成&#xff0c;要不同时失败 1.2什么时候需要事务&#xff1f; 关于金钱的操作基本都会有事务 例如转账操作&#xff1a; 第一步 A账号 - 500元第二步 B账…...

Innodb MVCC实现原理

什么是MVCC? MVCC全称多版本并发控制&#xff0c;是在并发访问数据库时对操作数据做多版本管理&#xff0c;避免因为写数据时要加写锁而阻塞读取数据的请求问题。 Innodb对mvcc的实现 1、事务版本号 每次事务开启前都会从数据库获得一个自增长的事务ID&#xff0c;可以从事…...

【网络编程】网络套接字和使用案例

一、为什么大多数网络编程使用套接字 在网络编程中&#xff0c;套接字 (socket) 是最常用的接口&#xff0c;但并不是所有的底层通信都依赖于套接字。尽管如此&#xff0c;绝大多数网络应用&#xff08;特别是在操作系统层面&#xff09;都使用套接字进行通信&#xff0c;因为…...

【Java企业生态系统的演进】从单体J2EE到云原生微服务

Java企业生态系统的演进&#xff1a;从单体J2EE到云原生微服务 目录标题 Java企业生态系统的演进&#xff1a;从单体J2EE到云原生微服务摘要1. 引言2. 整体框架演进&#xff1a;从原始Java到Spring Cloud2.1 原始Java阶段&#xff08;1995-1999&#xff09;2.2 J2EE阶段&#x…...

【爬虫基础】第二部分 爬虫基础理论 P1/3

上节内容回顾&#xff1a;【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客 【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客 【爬虫基础】第一部分 网络通讯-编程 P3/3-CSDN博客 爬虫相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff…...

第2章_保护您的第一个应用程序

第2章_保护您的第一个应用程序 在本章中&#xff0c;您将学习如何使用 Keycloak 保护您的第一个应用程序。为了让事情更有趣&#xff0c;您将运行的示例应用程序由两部分组成&#xff0c;前端 Web 应用程序和后端 REST API。这将向您展示用户如何向前端进行身份验证&#xff0…...

山东大学软件学院人工智能导论实验之知识库推理

目录 实验目的&#xff1a; 实验代码&#xff1a; 实验内容&#xff1a; 实验结果 实验目的&#xff1a; 输入相应的条件&#xff0c;根据知识库推理得出相应的知识。 实验代码&#xff1a; def find_data(input_process_data_list):for epoch, data_process in enumerat…...

Java 网络协议面试题答案整理,最新面试题

TCP和UDP的主要区别是什么&#xff1f; TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;的主要区别在于TCP是面向连接的协议&#xff0c;而UDP是无连接的协议。这导致了它们在数据传输方式、可靠性、速度和使用场景方面的不同。 1、连接…...

win10把c盘docker虚拟硬盘映射迁移到别的磁盘

c盘空间本身就比较小、如果安装了docker服务后&#xff0c;安装的时候没选择其他硬盘&#xff0c;虚拟磁盘也在c盘会占用很大的空间&#xff0c;像我的就三十多个G&#xff0c;把它迁移到其他磁盘一下子节约几十G 1、先输入下面命令查看 docker 状态 wsl -l -v 2、如果没有停止…...