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

【多线程】网络原理初识

网络原理初识

    • 1. 网络发展史
      • 1.2 独立模式
      • 1.3 网络互联
      • 1.3 局域网
      • 1.4 广域网
    • 2. 网络通信基础
      • 2.1 IP地址
      • 2.2 端口号
      • 2.3 认识协议
      • 2.4 五元组
      • 2.5 协议分层
        • 2.5.1 什么是协议分层
        • 2.5.2 协议分层的好处
        • 2.5.2 OSI七层模型
        • 2.5.3 TCP/IP五层模型
      • 2.6 封装和分用
        • 2.6.1 封装
          • 2.6.1.1 应用层拿到数据
          • 2.6.1.2 传输层拿到上述数据
          • 2.6.1.3 传输层交给网络层
          • 2.6.1.4 网络层交给数据链路层
          • 2.6.1.5 数据链路层把以太网包交给物理层
        • 2.6.2 分用
          • 2.6.2.1 物理层接收数据
          • 2.6.2.2 物理层交给数据链路层
          • 2.6.2.3 数据链路层交给网络层
          • 2.6.2.4 网络层交给传输层
          • 2.6.2.5 应用层解析
        • 2.6.3 整体

1. 网络发展史

1.2 独立模式

独立模式:计算机之间相互独立

这个时候的计算机还不能够联网,当时的家用计算机可以用来打单机游戏或者是视频播放等功能。

1.3 网络互联

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。

网络互连:将多台计算机连接在一起,完成数据共享。

数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信

根据网络互连的规模不同,可以划分为局域网和广域网

1.3 局域网

(1)基于网线直连

将两个电脑通过一根网线进行连接,这就是构成了一个简单的局域网。

但是通过传输线互联连接起来,要保证每一个节点至少与其他节点相连。但其结构复杂,实现起来费用较高,不易管理和维护。因此我们也会使用交换机和路由器进行互联。

image-20230731174742164

(2)基于交换机和路由器进行组建

image-20230731175201947

1.4 广域网

广域网,即 Wide Area Network,简称WAN。

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。因此局域网规模足够大,就成了广域网。

2. 网络通信基础

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。

那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。

2.1 IP地址

IP地址:标识了一个主机的具体位置。

IP地址是一个32位的二进制数。

格式

本质上是一个4个字节,32位的整数,往往写成“点分十进制”。

例如192.168.0.136

三个点把整个ip分成了四个部分,每个部分都是一个字节(取值范围0-255)

查询自己的IP

如果想要查看自己电脑的ip地址,可以通过win+r -> cmd -> ipconfig查看ip

特殊IP

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识

2.2 端口号

概念

在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程

类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。

格式

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

注意事项

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

了解:

一个进程启动后,系统会随机分配一个端口(启动端口)程序代码中,进行网络编程时,需要绑定端口号(收发数据的端口)来发送、接收数据。

进程绑定一个端口号后,fork一个子进程,可以实现多个进程绑定一个端口号,但不同的进程不能绑定同一个端口号。

问题:

有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?

网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢?

基于网络数据传输,需要使用协议来规定双方的数据格式

2.3 认识协议

概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

协议是什么?

协议就是约定,约定发送的数据格式。

使得双方能够互相进行通信。

协议(protocol)最终体现为在网络上传输的数据包的格式

2.4 五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机

  2. 源端口号:标识源主机中该次通信发送数据的进程

  3. 目的IP:标识目的主机

  4. 目的端口号:标识目的主机中该次通信接收数据的进程

  5. 协议号:标识发送进程和接收进程双方约定的数据格式

image-20230802165615083

五元组在网络通信中的作用,类似于发送快递:

image-20230802165657350

2.5 协议分层

对于网络协议来说,往往分成几个层次进行定义。

2.5.1 什么是协议分层

在网络通信中,需要约定的协议,其实是非常复杂的。

而面对复杂的环境,就需要复杂的协议。

但是协议太复杂也不好。

因为一个协议太复杂,就可以拆分成多个协议。协议是可以拆分出很多存在一些小的协议定位或者作用是类似的。

针对这些小的协议进行分类。同时再针对这些不同的类别进行分层。

调用关系

我们约定了层与层之间的调用关系。

要求上层协议调用下层协议,下层协议给上层提供支持,不能跨级调用。

例如

image-20230802175018845

公司有一定的层级关系,这种层级关系是要求两个相邻的层级才能交互,不能够跨层交互。

2.5.2 协议分层的好处

  1. 分层之后就可以做到层与层之间,耦合程度比较低、上层协议不必了解下层的细节,下层也不必了解上层的细节。
  2. 方便对某一层的协议进行替换。能够更好的扩展和维护。

在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):

  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

这样能更好的扩展和维护,如下图:

image-20230802175543136

2.5.2 OSI七层模型

image-20230802190304985

OSI七层网络模型既复杂又不实用,仅仅存在于教科书当中。

TCP/IP五层网络模型是当下最广泛使用的网络模型

2.5.3 TCP/IP五层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  • 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层

上面的定义可能有些复杂繁琐,我们可以进行简化

  • 应用层,主要关注传输过来的数据,要怎么使用
  • 传输层,不考虑中间路径,只关注起点和重点。就像,我和淘宝卖家,都不关心中间是怎么传输的,只关心起点和重点,中间怎么传输都可以。
  • 网络层,主要负责两个遥远的节点之间,路径规划。收货地址西安,发货地址是上海,上海到西安中间有很多条路径可以走,在众多路径中找到一个合适的(上海直达西安,上海->南京->西安,上海->苏州->西安)。
  • 数据链路层,主要关注的是两个相邻节点之间的传输。上海->南京(火车),南京->西安(卡车),网络上相邻节点,就是通过网线/光纤/无线直接连接的设备。
  • 物理层,主要定义物理设备的标准。网络通信的基础设施有网线,光纤,网络接口…可以认为是网络上的高速公路。

image-20230802190729599

物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。

应用层,对应程序员写的应用程序,下面四层,则是操作系统内部已经封装好的。

因此写代码,进行网络编程,主要工作还是围绕应用层进行展开。

传输层要被应用层进行调用,所以也要对传输层有一定的理解。

2.6 封装和分用

封装:发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装。

解析:接收方收到的数据,要把数据从下到上,依次交给对应的层次的协议,进行解析。解析过程就叫做分用。

我们举一个例子进行过程的解析。

2.6.1 封装

首先假设在通信应用程序,进行聊天的环境下。

2.6.1.1 应用层拿到数据

我发送“在吗?”给对方

qq会拿到上述用户数据进行封装,封装成应用层数据包。

image-20230813193251198

  1. 这里的应用层数据包格式,只是假设的,qq实际的应用层数据包,是qq开发者自己规定的。
  2. 这里的数据包,本质上就是字符串的拼接
  3. 为了区分上述字段,可能引入分隔符等进行界定,就像 发送方断桥烟雨;接收方刘cc;时间20230813;消息内容在吗;
2.6.1.2 传输层拿到上述数据

传输层有很多协议,最典型的是TCP和UDP。

此处以UDP为例

UDP针对上述数据包再进行封装。

image-20230813194553041

  1. 此处,UDP协议再给应用层数据报整个作为载荷并且再加个UDP报头,就是为了填写必要的属性

  2. 传输层协议最关键的属性是源端口和目的端口

  3. 数据报本质上是字符串拼接

2.6.1.3 传输层交给网络层

UDP协议进行封装后,将这个数据报交给网络层的协议

网络层最常见的协议就是IP协议

上述UDP数据报到达网络层,需要进一步的封装,添加IP协议报头

image-20230813195706885

源IP和目的IP就是描述了这次传输中,最初的起点和最终的终点

IP和端口

IP是找到主机,端口是确定主机上的哪个程序/进程

我的电脑有一个IP

但是电脑上有很多的程序有着不同的端口号

2.6.1.4 网络层交给数据链路层

数据链路层的协议是以太网协议

以太网协议对网络层的协议进行封装

image-20230814184324205

mac地址,也叫做物理地址

也是描述一个主机在网络上的位置

它的功能和IP很相似,但是当下就把这两个地址分别作用于不同的用途。

IP用来进行网络层的路径规划

mac用来进行描述数据链路层,两个进行传输的相邻节点。

mac是和网卡进行绑定的。每个网卡的mac是为一个

2.6.1.5 数据链路层把以太网包交给物理层

物理层要把上述的0101的二进制数据转换成光信号/电信号/电磁波信号,进行传输。

2.6.2 分用

接收方进行解析数据。

接受过程和封装过程刚好相反。

发送,从上到下,依次封装,新增报头

接收,从下到上,依次分用,去掉报头

忽略中间的转发过程,只考虑对方的电脑收到这个消息的情况。

2.6.2.1 物理层接收数据

物理层会收到高低电平的二进制数据。

会对这里的信号进行解析,还原成0101这样的二进制序列。

2.6.2.2 物理层交给数据链路层

此时把接收到的二进制数据当成一个以太网数据帧(此处是从以太网线收到的数据,就是要交给以太网协议来进行处理)

image-20230814184731235

以太网协议进行解析,把以太网帧头和帧尾去掉,取出中间的载荷,再往上交给网络层。

2.6.2.3 数据链路层交给网络层

此时就由网络层的IP协议进行解析数据报,也就是去掉IP报头。取出载荷,交给传输层协议。

image-20230814184952628

2.6.2.4 网络层交给传输层

传输层由UDP协议进行解析处理,还是去掉报头,取出载荷,把数据交给应用层

image-20230814185225473

2.6.2.5 应用层解析

由应用程序对应用层数据报进行解析,放到程序的界面

2.6.3 整体

发送方是进行层层封装

接收方是进行层层分用

真实的网络环境中,数据的传输中间可能要经历很多节点进行转发。

image-20230814185651014

交换机只需要封装分用到数据链路层(只需要改源mac和目的mac)

路由器需要封装分用到网络层(更改mac地址,以及根据目的IP进行下一阶段的路径规划)

通常也说,交换机是进行“二层转发”,路由器进行“三层转发”。

我们这里说的是教科书上的“经典”交换机路由器(教科书和考试上的标准)

实际上,真实的路由器和交换机之间的界限越来越小

路由器可以通过设定特殊模式只进行二层转发

交换机也有高端交换机,支持三层转发

甚至路由器/交换机还可以封装分用到传输层甚至应用层

路由器/交换机封装分用到传输层应用层的一个应用场景就是进行舆情分析。

相关文章:

【多线程】网络原理初识

网络原理初识 1. 网络发展史1.2 独立模式1.3 网络互联1.3 局域网1.4 广域网 2. 网络通信基础2.1 IP地址2.2 端口号2.3 认识协议2.4 五元组2.5 协议分层2.5.1 什么是协议分层2.5.2 协议分层的好处2.5.2 OSI七层模型2.5.3 TCP/IP五层模型 2.6 封装和分用2.6.1 封装2.6.1.1 应用层…...

Android之ADB常用命令

15、查看ipv6 是否使能 sysctl -a | grep ipv6 | grep disable 13、以太网获取Ip、网关、子网掩码、域名等 adb shell 网卡信息:ifconfig eth0 dns1:getprop net.dns1 dns2:getprop net.dns2 12、屏幕分辨率:wm size 11、…...

低代码开发工具:JVS轻应用之间如何实现数据的调用?

在低代码开发平台中,如何实现应用之间的数据共享呢?最标准的方式是通过接口,本文介绍JVS轻应用如何实现将数据通过API输出、轻应用如何实现体内API数据的获取?实现方式如下图所示,不管是数据提供方,还是数据…...

在Java中对XML的简单应用

XML 数据传输格式1 XML 概述1.1 什么是 XML1.2 XML 与 HTML 的主要差异1.3 XML 不是对 HTML 的替代 2 XML 语法2.1 基本语法2.2 快速入门2.3 组成部分2.3.1 文档声明格式属性 2.3.2 指令(了解):结合CSS2.3.3 元素2.3.4 属性**XML 元素 vs. 属…...

Linu学习笔记——常用命令

Linux 常用命令全拼: Linux 常用命令全拼 | 菜鸟教程 一、切换root用户 1.给root用户设置密码 sudo passwd root 2.输入密码,并确认密码 3.切换到root用户 su:Swith user(切换用户) su root 二、切换目录 目录结构:Linux 系…...

PLUS操作流程、应用与实践,多源不同分辨率数据的处理、ArcGIS的应用、PLUS模型的应用、InVEST模型的应用

PLUS模型是由中国地质大学(武汉)地理与信息工程学院高性能空间计算智能实验室开发,是一个基于栅格数据的可用于斑块尺度土地利用/土地覆盖(LULC)变化模拟的元胞自动机(CA)模型。PLUS模型集成了基于土地扩张分析的规则挖掘方法和基于多类型随机…...

item_review-获得淘宝商品评论

一、接口参数说明: item_review-获得淘宝商品评论,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_review 名称类型必须描述keyString是调用key(点击获…...

如何读取文件夹内的诸多文件,并选择性的保留部分文件

目录 问题描述: 问题解决: 问题描述: 当前有一个二级文件夹,第一层是文件夹名称是“Papers(LNAI14302-14304)",第二级文件夹目录名称如下图蓝色部分所示。第三层为存放的文件,如下下图所示,每一个文件中,均存放三个文件,分别为copyright.pdf, submission.pdf, s…...

每天一道leetcode:1129. 颜色交替的最短路径(图论中等广度优先遍历)

今日份题目: 给定一个整数 n,即有向图中的节点数,其中节点标记为 0 到 n - 1。图中的每条边为红色或者蓝色,并且可能存在自环或平行边。 给定两个数组 redEdges 和 blueEdges,其中: redEdges[i] [ai, bi…...

原生js发送ajax请求---ajax请求篇(一)

在原生js中我们使用的是XMLHttpRequest对象来发送ajax请求 主要步骤就是: 1.创建XMLHTTPRequest对象 2.使用open方法设置和服务器的交互信息 3.设置发送的数据,开始和服务器端交互 4.注册事件 5.更新界面 (1) get方式 //步骤一…...

【ARM 嵌入式 编译系列 2.1 -- GCC 编译参数学习】

文章目录 1.1 GCC 编译参数1.1.1 GCC arm-noe-eabi- 介绍1.1.1.1 ARM 和 Thumb 指令集区别1.1.2 GCC CFLAGS 介绍1.1.3 GCC LDFLAGS 介绍1.1.4 CXXFLAGS 介绍上篇文章:ARM 嵌入式 编译系列 2 – GCC 编译过程介绍 下篇文章:ARM 嵌入式 C 入门及渐进 3 – GCC attribute((weak…...

C++教程 - How to C++系列专栏第3篇

关于专栏 这个专栏是优质的C教程专栏,如果你还没看过第0篇,点击C教程 - How to C系列专栏第0篇去第0篇 本专栏一致使用操作系统:macOS Ventura,代码编辑器:CLion,C编译器:Clang 感谢一路相伴…...

使用Edge和chrom扩展工具(GoFullPage)实现整页面截图或生成PDF文件

插件GoFullPage下载:点击免费下载 如果在浏览网页时,有需要整个页面截图或导出PDF文件的需求,这里分享一个Edge浏览器的扩展插件:GoFullPage。 这个工具可以一键实现页面从上到下滚动并截取。 一、打开“管理扩展”(…...

image has dependent child images

问题:很多none的镜像无法被删除 解决过程: 1、通过 docker image prune -f 提示可删除为 0 2、直接进行删除报错: docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…...

Linux系统中基于NGINX的代理缓存配置指南

作为一名专业的爬虫程序员,你一定知道代理缓存在加速网站响应速度方面的重要性。而使用NGINX作为代理缓存服务器,能够极大地提高性能和效率。本文将为你分享Linux系统中基于NGINX的代理缓存配置指南,提供实用的解决方案,助你解决在…...

openCV项目开发实战--详细介绍如何改善夜间图像的照明(附python和C++源码)

文末附完整的代码实现下载链接 介绍 对于非摄影师来说,在光线不佳的条件下拍出好照片似乎很神奇。完成低光摄影需要技巧、经验和正确的设备的结合。在弱光下拍摄的图像缺乏色彩和独特的边缘。它们还遭受能见度差和深度未知的困扰。这些缺点使得此类图像不适合个人使用或图像处…...

rabbitmq的消息应答

消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成 了部分突然它挂掉了,会发生什么情况。RabbitMQ 一旦向消费者传递了一条消息,便立即将该消 息标记为删除。在这种情况下,突然有个消费者挂掉了…...

如何重置树莓派 Pico(重置外围设备失败)

有时候需要重置树莓派 Pico,一种方法是按住 Pico 上的“BOOTSEL”按钮再插入 USB;或者用按钮连接“RUN”和“GND”针脚,然后同时按下这个按钮和“BOOTSEL”按钮。这样就可以进入 USB 模式,这样从一定程度进行了重置。 但是这种方…...

LaWGPT基于中文法律知识的大语言模型_初步安装

准备代码,创建环境 # 下载代码 git clone gitgithub.com:pengxiao-song/LaWGPT.git cd LaWGPT# 创建环境 conda create -n lawgpt python3.10 -y conda activate lawgpt国内网络环境问题。你可以把requirements.txt里面的github.com替换成kgithub.com(这…...

一文学会sklearn中的交叉验证方法,cross_validate和KFlod实战案例

前言 在机器学习中,我们经常需要评估模型的性能。而为了准确评估模型的性能,我们需要使用一种有效的评估方法。五折交叉验证(5-fold cross-validation)就是其中一种常用的模型评估方法,用于评估机器学习模型的性能和泛…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

node.js的初步学习

那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...