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

AI-Sphere-Butler之Ubuntu服务器如何部署Nginx代理,并将HTTP升级成HTTPS,用于移动设备访问

环境:

AI-Sphere-Butler

WSL2

Ubuntu22.04

Nginx

问题描述:

AI-Sphere-Butler之Ubuntu服务器如何部署Nginx代理,并将HTTP升级成HTTPS,用于移动设备访问

在这里插入图片描述

解决方案:

一、生成加密证书

1.配置OpenSSL生成本地不加密证书

1.确保你已经安装了 Nginx 和 OpenSSL,可以使用以下命令在 Ubuntu 上安装它们:

sudo apt update
sudo apt install nginx openssl

2.生成自签名SSL证书

如果你还没有SSL证书,可以按照之前命令生成一个自签名证书,假设你已经在 /etc/nginx/ssl 目录下生成了 private.keycertificate.crt 文件。

sudo mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
openssl genpkey -algorithm RSA -out private.key
openssl req -new -key private.key -out csr.csr
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

在这里插入图片描述用不加密证书

openssl rsa -in /etc/nginx/ssl/private.key -out /etc/nginx/ssl/private_unencrypted.key

二、部署Nginx服务

1.更新软件包列表

首先,确保系统软件包列表是最新的:

sudo apt update

2.安装Nginx

使用apt命令来安装Nginx:

sudo apt install nginx

安装过程中,可能会提示你输入管理员密码以确认操作权限。
在这里插入图片描述

3.启动和启用Nginx

安装完成后,启动Nginx服务,并设置它在系统启动时自动运行:

sudo systemctl start nginx
sudo systemctl enable nginx

可以通过以下命令检查Nginx的状态,确保它正在运行:

sudo systemctl status nginx

在这里插入图片描述

如果一切正常,应该会看到类似“active (running)”的输出。

4.配置防火墙

如果你的Ubuntu服务器启用了UFW(Uncomplicated Firewall),要需要允许HTTP和HTTPS流量:

sudo ufw allow 'Nginx Full'

这条命令将允许通过HTTP(端口80)和HTTPS(端口443)的流量。如果你想只允许HTTP或HTTPS,可以分别使用'Nginx HTTP''Nginx HTTPS'

5.验证Nginx安装

打开浏览器并访问你的服务器IP地址或域名(例如:http://your_server_ip)。你应该能看到默认的Nginx欢迎页面,表明Nginx已经成功安装并运行。
在这里插入图片描述
6.基本配置文件路径

  • 主配置文件/etc/nginx/nginx.conf
  • 站点配置文件:通常位于/etc/nginx/sites-available/目录下,默认站点配置文件为default
  • 日志文件:位于/var/log/nginx/目录下的access.logerror.log

7.代理本地模块服务

本地地址:http://192.168.1.22:8010/realtalk/examples/index.html目标地址:https://192.168.1.22:7010/realtalk/examples/index.html

编写nginx默认配置文件

nano /etc/nginx/sites-available/default

server {listen 7010 ssl;server_name 192.168.1.22;# SSL 证书配置ssl_certificate /etc/nginx/ssl/certificate.crt;ssl_certificate_key /etc/nginx/ssl/private_unencrypted.key;# SSL 协议与密码套件ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;# 静态资源配置location /realtalk/examples/ {alias /mnt/e/work/metahuman-stream/web/realtalk/examples/;index index.html;# 处理静态文件的缓存控制,确保加载最新资源add_header Cache-Control "no-cache, no-store, must-revalidate";add_header Pragma "no-cache";add_header Expires 0;# 启用目录列表(可选,方便调试)autoindex on;autoindex_exact_size off;autoindex_localtime on;}   # 新增代理路径location /client.js {proxy_pass http://192.168.1.22:8010/client.js; # 将 HTTPS 请求转发到 HTTP 服务proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} # 代理 /webrtcapi.html 到 8010location /webrtcapi.html {proxy_pass http://192.168.1.22:8010/webrtcapi.html;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}    # 新增代理 /qwener 到 8010/qwenerlocation /qwener {proxy_pass http://192.168.1.22:8010/qwener;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 可选:添加缓存控制头(如果需要控制缓存)add_header Cache-Control "no-cache, no-store, must-revalidate";add_header Pragma "no-cache";add_header Expires 0;}# API 请求代理配置location /api/ {proxy_pass http://127.0.0.1:8010;# 跨域设置add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";add_header Access-Control-Allow-Headers "Authorization, Content-Type";# 处理预检请求 (CORS)if ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';add_header 'Content-Length' 0;return 204;}}# WebSocket 请求代理location /ws/ {proxy_pass http://127.0.0.1:8010;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;}# 主站点代理,用于其他未明确匹配的路径location / {proxy_pass http://127.0.0.1:8010;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# 防止 WebSocket 或长连接被切断proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}# HTTP 配置(重定向至 HTTPS)
server {listen 80;server_name 192.168.1.22;# 将所有 HTTP 请求强制重定向到 HTTPSreturn 301 https://$host$request_uri;
}

三、更改下面几个文件代码(改成你本地的)

E:\work\metahuman-stream\web\realtalk\examples\index.html

https://192.168.1.22:7010/webrtcapi.html

在这里插入图片描述
E:\work\metahuman-stream\web\realtalk\examples\index_noauto.js

在这里插入图片描述

四、测试

手机设备使用谷歌、火狐、edge浏览器测试输入访问测试
https://192.168.1.22:7010/realtalk/examples/index.html

相关文章:

AI-Sphere-Butler之Ubuntu服务器如何部署Nginx代理,并将HTTP升级成HTTPS,用于移动设备访问

环境: AI-Sphere-Butler WSL2 Ubuntu22.04 Nginx 问题描述: AI-Sphere-Butler之Ubuntu服务器如何部署Nginx代理,并将HTTP升级成HTTPS,用于移动设备访问 解决方案: 一、生成加密证书 1.配置OpenSSL生成本地不加…...

SpringBoot项目图片上传成功,访问404

1. 配置文件,静态资源访问路径,记得加上file: 2.上传文件路径 以上配置是正确的,这样才可以正确映射 之前我再配置文件写的是,这是错的, 因为:classpath写法和绝对路径无法匹配 .addResourceLocations("classpat…...

鸿蒙学习笔记(2)-国际化配置、ArkTS简述

一、国际化配置 根据操作系统语言实现手动或者自动切换中英文,提供了多套语言包。编写过程中注意不要将文字写死,将文本放在指定的语言包文件夹中来保存,鸿蒙开发中默认实现中英文的国际化配置。若要实现中英文转化,需要在三个地…...

ES 字段的映射定义了字段的类型及其行为

在 Elasticsearch 中,字段的映射定义了字段的类型及其行为。你提供的 content_answer 字段映射如下: Json 深色版本 "content_answer": { "type": "text", "fields": { "keyword": { …...

游戏引擎学习第183天

回顾和今天的计划 我对接下来的进展感到非常兴奋。虽然我们可能会遇到一些问题,但昨天我们差不多完成了将所有内容迁移到新的日志系统的工作,我们正在把一些内容整合进来,甚至是之前通过不同方式记录时间戳的旧平台层部分,现在也…...

未来二十年的量子计算

在未来二十年间,量子计算领域将迎来翻天覆地的变革,从实验室走向更广阔的应用舞台,重塑众多行业的格局。 在硬件层面,量子芯片的研发将持续精进。超导量子比特技术会不断突破,进一步提升比特数量与质量。当前&#xff…...

SpringBoot通过Map实现天然的策略模式

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: SpringBoot通过Map实现天然的策略模式 ⏱️ 创作时间: 202…...

MTKAndroid12 解决SystemUI下拉框中,长按WIFI图标会导致崩溃问题

解决SystemUI下拉框中,长按WIFI图标会导致崩溃问题 文章目录 场景参考资料修改文件解决方案日志源码分析 总结 场景 在部分产品中偶发性发现, SystemUI下拉框下拉后长按WIFI图标会导致崩溃问题,有时候是截屏、点击Home 按键后,长…...

Springboot 学习 之 Shardingsphere 按照日期水平分表(二)

文章目录 业务场景依赖配置特别注意优劣参考资料 业务场景 在 报表 等 大数据量 且需要 按照日期显示 的业务场景下&#xff0c;按照 日期水平分表 是一个不错的选择 依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-b…...

WordPress超级菜单插件UberMenu v3.78汉化版

一、插件介绍 UberMenu 是一款功能强大的 WordPress 超级菜单插件,能够帮助站长创建响应式、可自定义的多级菜单。该插件支持动态内容加载、图标、图片、搜索框等丰富功能,并且兼容大多数 WordPress 主题。 UberMenu v3.78 经过完整汉化,适用于中文站点用户,让操作更加直观…...

观成科技:海莲花利用MST投递远控木马

概述 “海莲花”&#xff0c;又名“OceanLotus”&#xff0c;该APT组织是长期针对中国境内&#xff0c;且攻击活动十分活跃的组织。近期发现该组织使用了MSI文件滥用的新手法&#xff0c;将远程控制木马植入MST文件来修改MSI文件安装时的执行流程&#xff0c;在安装期间运行恶…...

Node.js系列(5)--数据库操作指南

Node.js数据库操作指南 &#x1f4be; 引言 数据库操作是Node.js应用开发中的关键环节。本文将深入探讨Node.js数据库操作的实现方案&#xff0c;包括连接管理、查询优化、事务处理等方面&#xff0c;帮助开发者构建高效可靠的数据访问层。 数据库操作概述 Node.js数据库操…...

最大异或对 The XOR Largest Pair

题目来自洛谷网站&#xff1a; 思路&#xff1a; 两个循环时间复杂度太高了&#xff0c;会超时。 我们可以先将读入的数字&#xff0c;插入到字典树中&#xff0c;从高位到低位。对每个数查询的时候&#xff0c;题目要求是最大的异或对&#xff0c;所以我们选择相反的路径&am…...

简单介绍My—Batis

1.什么是My—Batis&#xff1f; My—Batis是一个持久层框架&#xff0c;提供了sql映射功能&#xff0c;能方便的将数据库表和java对象进行映射&#xff0c;通过My—Batis可以将项目中的数据存储在数据库中&#xff0c;以便我们进行调用。值得注意的是My—Batis和spring不是一回…...

案例分享|树莓派媒体播放器,重构商场广告的“黄金三秒”

研究显示&#xff0c;与传统户外广告相比&#xff0c;数字户外广告在消费者心中的记忆率提高了17%&#xff0c;而动态户外广告更是能提升16%的销售业绩&#xff0c;整体广告效率提升了17%。这一显著优势&#xff0c;使得越来越多资源和技术流入数字广告行业。 户外裸眼3D广告 无…...

硬件基础(5):(3)二极管的应用

文章目录 [toc]1. **整流电路****功能**&#xff1a;**工作原理**&#xff1a;**应用实例**&#xff1a;电路组成&#xff1a;整流过程&#xff1a;电路的应用&#xff1a; 2. **稳压电路****功能**&#xff1a;**工作原理**&#xff1a;**应用实例**&#xff1a;电路组成及功能…...

数据结构之栈的2种实现方式(顺序栈+链栈,附带C语言完整实现源码)

对于逻辑关系为“一对一”的数据&#xff0c;除了用顺序表和链表存储外&#xff0c;还可以用栈结构存储。 栈是一种“特殊”的线性存储结构&#xff0c;它的特殊之处体现在以下两个地方&#xff1a; 1、元素进栈和出栈的操作只能从一端完成&#xff0c;另一端是封闭的&#xf…...

vscode终端不识别npm 无法解析npm

vscode 用以管理员打开识别npm vscode 用普通用户打开不识别npm 刚换了一台新电脑&#xff0c;寻思安装各种环境&#xff0c;一顿操作猛如虎&#xff0c;当最后一个打开vscode后&#xff0c;运行项目发现&#xff0c;新建终端>npm run dev 无法识别。 在cmd 中 打node -…...

java泛型的协变、逆变和不变

引言 我们在看开源框架经常会看到泛型来定义数据类型。 有时候&#xff0c; <? extends T> 和 <? super T> 这样带通配符的泛型参数。 这种通配符的泛型是什么意思怎么用&#xff1f;&#xff1f;&#xff1f;&#xff1f; 概念 型变&#xff1a; 用来描述类…...

effective Java 学习笔记(第二弹)

effective Java 学习笔记&#xff08;第一弹&#xff09; 整理自《effective Java 中文第3版》 本篇笔记整理第3&#xff0c;4章的内容。 重写equals方法需要注意的地方 自反性&#xff1a;对于任何非空引用 x&#xff0c;x.equals(x) 必须返回 true。对称性&#xff1a;对于…...

Spring BeanFactoryPostProcessor 和 BeanPostProcessor有什么用?

BeanFactoryPostProcessor 和 BeanPostProcessor 都是 Spring 框架中非常重要的扩展点&#xff0c;我们在开发中可以利用 Spring 容器实例化 Bean、配置 Bean 以及初始化 Bean 的过程中进行自定义的干预。但它们的作用时机和作用对象不同。 1. BeanFactoryPostProcessor: 作用…...

Centos7 Gitlab17部署

确保你的安装源正常 1.安装依赖项 sudo yum install -y curl policycoreutils-python openssh-server openssh-clients postfix 2.安装Gitlab (1)添加仓库 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash (2) 安装Gitl…...

一文解读DeepSeek在工业制造领域的应用

引言 在当今数字化浪潮席卷全球的背景下&#xff0c;各个行业都在积极寻求创新与变革&#xff0c;工业制造领域也不例外。然而&#xff0c;传统工业制造在生产效率、质量控制、成本管理等方面面临着诸多挑战。在这一关键时期&#xff0c;人工智能技术的兴起为工业制造带来了新的…...

基于动态 FOF(基金中的基金)策略的基金交易推荐系统的设计与实现思路

下面为你呈现一个基于动态 FOF&#xff08;基金中的基金&#xff09;策略的基金交易推荐系统的设计与实现思路&#xff0c;同时给出一个简单的 Python 示例代码。 系统设计 1. 需求分析 收集各类基金的历史数据&#xff0c;涵盖净值、收益率、风险指标等。依据动态 FOF 策略…...

第一次程序Hello Python

Python环境安装 安装地址 安装地址 https://www.python.org/ 1. 安装Python 下载完成后&#xff0c;双击安装包&#xff08;如python-3.13.2.exe&#xff09;&#xff0c;按照提示进行安装。在安装过程中&#xff0c;确保勾选“Add Python to PATH”选项&#xff0c;以便在命…...

nvm 切换node 版本 但是没有带星号*

在 Windows 系统中配置 NVM_SYMLINK 环境变量的步骤如下&#xff1a; 1️⃣ 设置变量路径 变量名&#xff1a;NVM_SYMLINK 变量值&#xff1a;建议设置为 C:\Program Files\nodejs&#xff08;需与后续步骤中 NVM 配置的符号链接路径一致&#xff09; 2️⃣ 配置系统环境变量…...

Java定时任务的三重境界:从单机心跳到分布式协调

《Java定时任务的三重境界&#xff1a;从单机心跳到分布式协调》 本文将以生产级代码标准&#xff0c;揭秘Java定时任务从基础API到分布式调度的6种实现范式&#xff0c;深入剖析ScheduledThreadPoolExecutor与Quartz Scheduler的线程模型差异&#xff0c;并给出各方案的性能压…...

1.NextJS基础

NextJS注意要点 文件用来定义路由&#xff0c;folder name becomes the route name注意区分客户端渲染和服务器渲染 html渲染完成后给到客户端&#xff08;此时网页内容已经全部提供&#xff09;&#xff0c;有利于crawler和优化seo逻辑更简单request deduplication减少API请求…...

晶晨/全志/联发科芯片系列电视盒子改固件包教程

声明&#xff1a;对电视盒子进行改包&#xff08;修改固件包&#xff09;是一项有一定技术门槛且存在风险的操作&#xff0c;可能会导致盒子变砖、失去保修等问题&#xff0c;同时私自修改固件可能违反相关法律法规和使用协议。以下为你提供一个通用的大致改包教程&#xff0c;…...

2025最新3个wordpress好用的主题

红色大气的wordpress企业主题&#xff0c;适合服务行业的公司搭建企业官方网站使用。是一款专为中小企业和个人开发者设计的WordPress主题&#xff0c;旨在提供专业的网站构建解决方案。 通过此WordPress主题&#xff0c;用户可以轻松创建和维护一个专业的企业网站&#xff0c…...

GZCTF平台搭建及题目上传

前言 我用手里的Ubuntu虚拟机搭建的&#xff0c;大家根据自己的实际情况来吧 安装及部署 首先&#xff0c;你的虚拟机需要有Docker和Docker-Compose&#xff0c;前者可以看我之前的文章&#xff0c;另外一个可以输入下面的命令安装&#xff0c;注意先获取管理员权限&#xff…...

openGauss关联列数据类型不一致引起谓词传递失败

今天分享一个比较有意思的案例 注意&#xff1a;因为原始SQL很长&#xff0c;为了方便排版&#xff0c;简化了SQL 下面SQL跑60秒才出结果&#xff0c;客户请求优化 select dtcs.owner, dtcs.table_name, dtcs.column_name, dct.commentsfrom dba_tab_columns dtcsleft outer j…...

【网络安全基础学习】渗透测试工具--Burp Suite详细教程

Burp Suite与SniffMaster&#xff1a;网络安全工具的双剑合璧 Burp Suite&#xff08;简称BP&#xff09;是一款用于攻击web应用程序的集成平台。它包含了许多工具&#xff0c;并为这些工具设计了许多接口&#xff0c;以促进加快攻击应用程序的过程。然而&#xff0c;除了Burp…...

手机测试,工作中学习

要学习各种机型的截图方式、开发模式在哪。 荣耀机型&#xff1a;截图&#xff1a;关节快速敲两下。开发者模式在“系统和更新”里。 1.出现缺陷&#xff0c;需要获取日志。 学习adb生成日志&#xff1a;当测试中出现缺陷的&#xff0c;使用adb logcat -d > d:/log.txt …...

ctfshow WEB web2

1.查当前数据库名称 or 11 union select 1,database(),3 limit 1,2;#-- 得到数据库名称web2 2.查看数据库表的数量 or 11 union select 1,(select count(*) from information_schema.tables where table_schema web2),3 limit 1,2;#-- 得到数据库表数量为2 3.查表的名字 第…...

大疆上云api介绍

概述 目前对于 DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人…...

ASP.NET Web API + VUE3 整合阿里云OSS,后端API生成预签名上传Url,前端VUE进行上传

1、后端API 我用的是.net sdk6&#xff0c;所以先安装了这个Aliyun.OSS.SDK.NetCore 下面是后端生成上传Url的参考代码&#xff0c;主意request.ContentType&#xff0c;如果这里要是设置了&#xff0c;那么前端也要设置成一样的&#xff0c;如果前端是获取文件的contentType&…...

Java基础 3.22

1.break练习 //1-100之内的数求和&#xff0c;求当和第一次大于20的当前数i public class Break01 {public static void main(String[] args) {int n 0;int count 0;for (int i 1; i < 100; i) {count i;System.out.println("当前和为" count);if (count &g…...

如何快速解决 Postman 报错?

介绍一些 Postman 常见的报错与处理方法&#xff0c;希望能够对大家有所帮助。 Postman 一直转圈打不开的问题 Postman 报错处理指南&#xff1a;常见报错与解决方法...

软件性能效率测试工具有哪些?专业第三方软件检测机构推荐

在软件开发的新时代&#xff0c;软件性能效率测试已经成为每个企业不可或缺的一部分。无论是在竞争激烈的市场中&#xff0c;还是在追求卓越用户体验的过程中&#xff0c;都需要进行有效的性能测试。 一、软件性能效率测试的目标   1、响应时间&#xff1a;确保用户请求的响…...

手机销售终端MPR+LTC项目项目总体方案P183(183页PPT)(文末有下载方式)

资料解读&#xff1a;手机销售终端 MPRLTC 项目项目总体方案 详细资料请看本解读文章的最后内容。在当今竞争激烈的市场环境下&#xff0c;企业的销售模式和流程对于其发展起着至关重要的作用。华为终端正处于销售模式转型的关键时期&#xff0c;波士顿 - 华为销售终端 MPRLTC …...

redis使用

redis集群搭建可参考&#xff1a;redis集群搭建-CSDN博客 一、简述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、基于内存的高性能键值对存储系统&#xff0c;通常用作数据库、缓存和消息代理。它支持多种数据结构&#xff0c;包括字符串、哈希、列…...

深入 SVG:矢量图形、滤镜与动态交互开发指南

1.SVG 详细介绍 SVG&#xff08;Scalable Vector Graphics&#xff09; 是一种基于 XML 的矢量图形格式&#xff0c;用于描述二维图形。 1. 命名空间 (Namespace) ★ 了解 命名空间 URI&#xff1a;http://www.w3.org/2000/svg 用途&#xff1a;在 XML 或 XHTML 中区分不同标…...

从双指针到单调栈,深挖“接雨水”的算法奥秘

从双指针到单调栈&#xff0c;深挖“接雨水”的算法奥秘 大家好&#xff0c;我是你们熟悉的算法领域大牛Echo_Wish。今天我们聊聊经典题目《接雨水》&#xff08;Trapping Rain Water&#xff09;&#xff0c;不仅仅是讲解&#xff0c;而是深度对比两种高效解法&#xff1a;双…...

Labview和C#调用KNX API 相关东西

叙述:完全没有听说过KNX这个协议...................我这次项目中也是简单的用了一下没有过多的去研究 C#调用示例工程链接(labview调用示例在 DEBUG文件夹里面) 通过网盘分享的文件&#xff1a;KNX调用示例.zip 链接: https://pan.baidu.com/s/1NQUEYM11HID0M4ksetrTyg?pwd…...

Wireshark网络抓包分析使用详解

序言 之前学计网还有前几天备考华为 ICT 网络赛道时都有了解认识 Wireshark&#xff0c;但一直没怎么专门去用过&#xff0c;也没去系统学习过&#xff0c;就想趁着备考的网络相关知识还没忘光&#xff0c;先来系统学下整理点笔记~ 什么是抓包&#xff1f;抓包就是将网络传输…...

linux命令行工具进阶

文章目录 前言ssh免密登录&#xff0c;免密码登录&#xff0c;公私钥查看与修改IP地址临时修改永久修改 mount临时切换根文件系统永久切换根文件系统loop文件partedinitramfsuboot command line 前言 本文记录了一些不经常用到&#xff0c;但在某个时刻需要用到的一些指令。 免…...

【Linux文件IO】Linux中标准IO的API的描述和基本用法

Linux中标准IO的API的描述和基本用法 一、标准IO相关API1、文件的打开和关闭示例代码&#xff1a; 2、文件的读写示例代码&#xff1a;用标准IO&#xff08;fread、fwrite&#xff09;实现文件拷贝(任何文件均可拷贝) 3、文件偏移设置示例代码&#xff1a; 4、fgets fputs fget…...

【netstat和ss】Windows和Linux下的,网络连接排查简单案例

网络连接排查利器&#xff1a;netstat与ss命令详解 初识netstat&#xff1a;Windows下的网络连接查看工具 需要查看本机的网络连接情况时&#xff0c;Windows系统提供了一个非常实用的命令&#xff1a;netstat。和findstr组合形成一个有用的组合命令&#xff1a; netstat -a…...

【WPF】MVVM模式实现数据绑定以及Command事件绑定

1.引用类 using System.ComponentModel2.创建Command自定义类 public class DelegateCommand : ICommand{public bool CanExecute(object parameter){if (CanExecuteFunc null)return true;return this.CanExecuteFunc(parameter);}public event EventHandler CanExecuteChan…...