Socket篇(学习前言)

目录

一、计算机网络

二、网络编程

三、网络编程三要素

1. IP地址

1.1. 简介

1.2. IP地址分为两大类

IPv4

IPv6

1.3. IP地址形式

1.4. DOS常用命令

1.5. 特殊IP地址

2. 端口

2.1. 简介

2.2. 端口号

2.3. 端口类型

周知端口

注册端口

动态端口

3. 协议

3.1. 简介

3.2. 网络通信协议有两套参考模型

OSI参考模型

TCP/IP参考模型

两种参考模型对比

3.3. 传输层中的2个常见协议

协议一:UDP协议

简介

特点

应用场景

协议二:TCP协议

简介

特点

TCP三次握手确立连接

TCP四次挥手断开连接

应用场景

四、InetAddress

1. 简介

2. 常用方法

3. 代码示例

InetAddressDemo01

InetAddressDemo

五、URL

1. 简介

2. API

3. 示例代码

六、TCP/UDP的简介与区别

1. 简介

2. TCP、UDP区别

2.1. 连接

2.2. 安全

2.3. 传输效率

2.4. 连接数量

2.5. 首部

2.6. 可靠

2.7. 面向方式

3. TCP的三次握手与四次挥手

3.1. TCP的三次握手

3.2. TCP的四次挥手

3.3. 为什么握手要三次、挥手要四次?

4. TCP和UDP的使用场景

4.1. TCP的使用场景

4.2. UDP的使用场景

4.3. TCP维护可靠的通信方式


一、计算机网络

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,

在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

二、网络编程

在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。

三、网络编程三要素

1. IP地址

1.1. 简介

要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计

算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。

1.2. IP地址分为两大类

IPv4

IPv4是给每个连接在网络上的主机分配一个32bit地址。

按照TCP/IP规定,IP地址用二进制来表示,每个IP地址长32bit,也就是4个字节。

例如:

一个采用二进制形式的IP地址是“11000000 10101000 00000001 01000010”,这么长的地址,处理起来非常

费劲。

为了方便使用,IP地址经常被写成十进制的形式,中间使用符号“.”分隔不同的字节。

于是,上面的IP地址可以表示为“192.168.1.66”。

IPv4地址的这种表示法叫做“点分十进制表示法”

IPv6

由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。

为了扩大地址空间,通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,

这样就解决了网络地址资源数量不够的问题,每个整数用四个十六进制位表示, 数之间用冒号( :)分开,

IPv6的这种表示法叫作“冒分十六进制表示法”

1.3. IP地址形式

IP地址形式可分为 公网地址、私有地址(局域网使用)

例如:

我们经常看到的 192.168. 开头的就是常见的局域网地址,范围为 192.168.0.0--192.168.255.255,专门为组织

机构内部使用

1.4. DOS常用命令

ipconfig:查看本机IP地址

ping IP地址:检查网络是否连通

1.5. 特殊IP地址

127.0.0.1:是回送地址,可以代表本机地址,一般用来测试使用

2. 端口

2.1. 简介

就是设备上应用程序的唯一标识,标识正在计算机设备上运行的进程(程序)!

2.2. 端口号

就是用两个字节表示的整数,它的取值范围是0~65535,其实就是端口,是端口的 id 值!

其中:

0~1023之间的端口号用于一些知名的网络服务和应用,

普通的应用程序需要使用1024以上的端口号

一个设备中,不能出现2个应用程序的端口号一样,如果一样会出现端口冲突错误!

2.3. 端口类型

周知端口

周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)

注册端口

注册端口:1024~49151,分配给用户进程或某些应用程序(如:Tomcat占 用8080,MySQL占用3306)

动态端口

动态端口:49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程,而是动态分配

3. 协议

3.1. 简介

计算机网络中,连接和通信的规则被称为网络通信协议

3.2. 网络通信协议有两套参考模型

OSI参考模型

OSI参考模型:世界互联协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上进行广泛推广

TCP/IP参考模型

TCP/IP参考模型(或TCP/IP协议):事实上的国际标准

两种参考模型对比

3.3. 传输层中的2个常见协议

协议一:UDP协议
简介

UDP(User Datagram Protocol):用户数据报协议

特点
  1. UDP是无连接的、不可靠的通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说:当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据
  2. 每个数据包的大小限制在64KB内 ,由于使用UDP协议消耗系统资源小,通信效率高<所以通常都会用于音频、视频和普通数据的传输。例如:视频会议通常采用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。但是在使用UDP协议传送数据时,由于UDP协议的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议.

3. 可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快

应用场景

语音通话,视频会话等

协议二:TCP协议
简介

TCP(Transmission Control Protocol) :传输控制协议

特点
  1. TCP协议是面向连接的、可靠的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数

据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端

向服务端发出连接请求,每次连接的创建都需要经过“三次握手”正因为采用TCP协议,传输数据前会采用

“三次握手”方式建立连接,点对点通信,所以TCP协议是可靠的通信协议

    • 三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠
      • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认
      • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
      • 第三次握手,客户端再次向服务器端发送确认信息,确认连接
    • 完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛。例如:上传文件、下载文件、浏览网页等
  1. 还有在TCP协议下进行网络通信,在连接中可进行大数据量的传输,同时,连接、发送数据都需要确认,且传

输完毕后,还需释放已建立的连接,通信效率相对 UDP协议 较低

TCP三次握手确立连接

TCP四次挥手断开连接

应用场景

正因为TCP协议具有三次握手、四次挥手特点,一般应用于对信息安全要求较高的场景,

例如:文件下载、金融等数据通信

四、InetAddress

1. 简介

Java提供InetAddress类来封装IP地址或域或名。

InetAddress类有两个子类:Inet4Address和Inet6Address,分别用于封装4个字节的IP地址和6个字节的IP地址。

InetAddress内部对地址数字进行隐藏,用户不需要了解实现地址的细节,只需了解如何调用相应的方法即可。

InetAddress类无构造方法,因此不能直接创建其对象,而是通过该类的静态方法创建一个InetAddress对象或InetAddress数组。

2. 常用方法

方法

功能描述

public static InetAddress getLocalHost()

获取本机对应的InetAddress对象

public static InetAddress getByName(String host)

根据主机获得对应的InetAddress对象,参数host可以是IP地址或域名

public static InetAddress[] getAllByName(String host)

根据主机获得对应的InetAddress对象

public static InetAddress getByAddress(byte[] addr)

获取addr所封装的IP地址对应的Inet Address对象

public String getCanonicalHostName()

获取此IP地址的全限定域名

public bytes[] getHostAddress()

获取该InetAddress对象对应的IP地址字符串

public String getHostName()

获得该InetAddress对象的主机名称

public boolean isReachable(int timeout)

判断是否可以到达该地址

3. 代码示例

InetAddressDemo01

/**目标:InetAddress类概述(了解)一个该类的对象就代表一个IP地址对象。InetAddress类成员方法:static InetAddress getLocalHost()* 获得本地主机IP地址对象。static InetAddress getByName(String host)* 根据IP地址字符串或主机名获得对应的IP地址对象。String getHostName()* 获得主机名。String getHostAddress()* 获得IP地址字符串。*/
public class InetAddressDemo01 {public static void main(String[] args) throws Exception {// 1.获取本机地址对象。InetAddress ip1 = InetAddress.getLocalHost();System.out.println(ip1.getHostName());System.out.println(ip1.getHostAddress());// 2.获取域名ip对象InetAddress ip2 = InetAddress.getByName("www.baidu.com");System.out.println(ip2.getHostName());System.out.println(ip2.getHostAddress());// 3.获取公网IP对象。InetAddress ip3 = InetAddress.getByName("112.80.248.76");System.out.println(ip3.getHostName());System.out.println(ip3.getHostAddress());// 4.判断是否能通: ping  5s之前测试是否可通System.out.println(ip3.isReachable(5000));}
}

结果如下:

WIN-C9R1GLESKTK
192.168.136.1
www.baidu.com
120.232.145.185
112.80.248.76
112.80.248.76
true

InetAddressDemo

public class InetAddressDemo2 {public static void main(String[] args) {try {//获取本机地址信息InetAddress localIp = InetAddress.getLocalHost();System.out.println("localIp.getCanonicalHostName()="+ localIp.getCanonicalHostName());System.out.println("localIp.getHostAddress()="+ localIp.getHostAddress());System.out.println("localIp.getHostName()="+ localIp.getHostName());System.out.println("localIp.toString()=" + localIp.toString());System.out.println("localIp.isReachable(5000)="+ localIp.isReachable(5000));System.out.println("====================================");//获取指定域名地址信息InetAddress baiduIp = InetAddress.getByName("www.baidu.com");System.out.println("baiduIp.getCanonicalHostName()="+ baiduIp.getCanonicalHostName());System.out.println("baiduIp.getHostAddress()="+ baiduIp.getHostAddress());System.out.println("baiduIp.getHostName()="+ baiduIp.getHostName());System.out.println("baiduIp.toString()=" + baiduIp.toString());System.out.println("baiduIp.isReachable(5000)="+ baiduIp.isReachable(5000));System.out.println("====================================");//获取指定原始IP地址信息InetAddress ip = InetAddress.getByAddress(new byte[]{127, 0, 0, 1});// InetAddress ip = InetAddress.getByName("127.0.0.1");System.out.println("ip.getCanonicalHostName()="+ ip.getCanonicalHostName());System.out.println("ip.getHostAddress()= " + ip.getHostAddress());System.out.println("ip.getHostName()=" + ip.getHostName());System.out.println("ip.toString()=" + ip.toString());System.out.println("ip.isReachable(5000)="+ ip.isReachable(5000));} catch (UnknownHostException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}
}

结果如下:

localIp.getCanonicalHostName()=WIN-C9R1GLESKTK
localIp.getHostAddress()=192.168.136.1
localIp.getHostName()=WIN-C9R1GLESKTK
localIp.toString()=WIN-C9R1GLESKTK/192.168.136.1
localIp.isReachable(5000)=true
====================================

五、URL

1. 简介

URL: Uniform Resource Locator 统一资源定位符

  • 表示统一资源定位符,指向万维网上的“资源”的指针。用于区分、定位资源
  • 一个标准的URL必须包括:protocol(方案或协议)、host(主机)、port(端口)、path(路径)、parameter( 查询参数)、、anchor(锚点)
  • 在www上,每一信息资源都有统一且唯一的地址
  • 如:http://www.google.com:80/index.html ,分四部分组成:协议、存放资源的主机域名、端口号、资源

文件名

2. API

构造器

说明

URL(String spec)

从 String表示形成一个 URL对象

常用方法

说明

String getProtocol()

获取此 URL的协议名称

String getHost()

获取此 URL的主机名(如适用)

int getPort()

获取此 URL的端口号

String getPath()

获取此 URL的路径部分

String getFile()

获取此 URL的文件名

String getQuery()

获取参数

String getRef()

获取锚点

3. 示例代码

public class URLTest01 {public static void main(String[] args) throws MalformedURLException {URL url = new URL("http://www.baidu.com:80/index.html?uname=dream&age=18#a");// 获取四个值:协议、域名、端口、请求资源System.out.println("协议:" + url.getProtocol());System.out.println("域名|IP:" + url.getHost());System.out.println("端口:" + url.getHost());System.out.println("请求资源1:" + url.getPath());System.out.println("请求资源2:" + url.getFile());// 参数System.out.println("参数:" + url.getQuery());// 锚点System.out.println("锚点:" + url.getRef());}
}

结果如下:

协议:http
域名|IP:www.baidu.com
端口:www.baidu.com
请求资源1:/index.html
请求资源2:/index.html?uname=dream&age=18
参数:uname=dream&age=18
锚点:a

六、TCP/UDP的简介与区别

1. 简介

  • TCP(Transmission Control Protocol):传输控制协议,是一种面向连接的、可靠的、基于字节流的传输

层通信协议。由IETF的RFC 793定义。

  • UDP(User Datagram Protocol):用户数据报协议,是一种面向无连接,不可靠、以数据报文段的形式传

输的传输层通信协议。由RFC 768描述了UDP。

TCP报文格式

UDP报文格式

2. TCP、UDP区别

2.1. 连接

TCP面向连接(如打电话先拨号建立连接)

UDP无连接,即发送数据报前不用建立连接(古代写信,无法彼此建立连接,且无法保证信件是否会丢失)

2.2. 安全

TCP提供可靠的服务,通过TCP连接发送的数据,无差错、不丢失、不重复按序到达。

UDP尽最大努力交付,不保证可靠的传输服务。

2.3. 传输效率

TCP传输效率低、UDP传输效率高

2.4. 连接数量

TCP连接只能一对一、点对点通信。

UDP连接支持一对一、一对多、多对一和多对多的交互通信。

2.5. 首部

TCP报文首部20个字节,UDP报文首部8个字节

2.6. 可靠

TCP的逻辑通信是全双工的可靠信道,UDP则是不可靠信道。

2.7. 面向方式

TCP面向字节流,实际上是把TCP数据看成一串无结构的字节流,由于连接的问题,当网络出现波动时,连接可能

出现波动问题。UDP面向报文。UDP没有阻塞控制,因此网络出现拥堵不会使源主机的发送速率降低。

3. TCP的三次握手与四次挥手

3.1. TCP的三次握手

三次握手是TCP用来确保连接可靠建立的方式

  • 第一次握手:A给B发短信说:“B,你现在有空吗?”
  • 第二次握手:B此时收到了A的信息,然后对A说:“我有空,你呢?有空吗?”
  • 第三次握手:A此时收到了A的信息,然后说:“我也有空,那我给你说个事。”

在三次握手之后,A和B都能确定这么一件事:双方的通信可以流畅的进行。这样,双方就可以开始进行正常的对 话了。

3.2. TCP的四次挥手

四次挥手是TCP用来确保连接可靠关闭的方式:

  • 第一次挥手:A给B发短信说,“B,我要准备吃饭了?”
  • 第二次挥手:B此时收到了A的信息,然后先对A说:“我知道了。”
  • 第三次挥手:B对A说:“我也要准备吃饭了。”然后放下了手机
  • 第四次挥手:A此时收到了B的确认信息,然后向B发送一个包说:“好的,知道了。”这时才放下手机去吃饭

在四次挥手之后,A和B都能确定这么一件事:

双方的通信都可以正常关闭,这样,双方就可以确定对方已经完全知道了自己要确认关闭连接。

3.3. 为什么握手要三次、挥手要四次?

三次握手是客户端与服务端建立通信的过程。

  • 第一次:客户端向服务端发送请求,确认服务端是否能够收到请求。
  • 第二次:服务端向客户端响应,告诉客户端,我已经收到你的请求。并且准备号接受其他亲亲贵
  • 第三次:客户端再次发送请求,告诉服务端,我已经收到了你的回复麻,并且我也准备好了。

四次挥手是客户端与服务端结束通信的过程。

  • 第一次:客户端向服务端发送结束的请求。
  • 第二次:服务端向客户端响应,收到你的结束请求了。
  • 第三次:服务端向客户端发起,服务端收到这样的请求后,会区处理所有的现有数据请求,在现有的数据请求处理完成以后,会正式回复客户端的结束请求。
  • 第四次:客户端向服务端发起,表示已经收到了你的结束请求。

4. TCP和UDP的使用场景

4.1. TCP的使用场景

相对于UDP,TCP实现了数据传输过程中的各种控制,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行

顺序控制。在对可靠性要求较高的情况下,可以使用TCP。

(特别是需要可靠连接,比如付费、加密数据等等方向都需要依靠TCP)

4.2. UDP的使用场景

当对网络通讯质量要求不高时,要求网络通讯速度能尽量快,这时就可以使用UDP。

在日常生活中,常见使用UDP协议的应用,比如QQ语音、QQ视频、TFTP等。

  • 包总量较小的通信(DNS,SNMP)
  • 视频、音频等多媒体通信(即时通信)
  • 广播通信
  • 对数据安全性无特殊要求
  • 网络负担非常重,但对响应速度要求高

4.3. TCP维护可靠的通信方式

  1. 数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组。
  2. 到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认包。
  3. 超时重发:发送方在发送分片后计时,若超时却没有收到相应的确认包,将会重发对应的分片。
  4. 滑动窗口:TCP连接双方的接收缓冲空间大小都固定,接收端只能接受缓冲区能容纳的数据。
  5. 失序处理:TCP的接收端需要重新排序接收到的数据。
  6. 重复处理:如果传输的TCP分片出现重复,TCP的接收端需要丢弃重复的数据。
  7. 数据效验:TCP通过保持它首部和数据的检验和来检测数据在传输过程中的任何变化。新排序接收到的数据。
  8. 重复处理:如果传输的TCP分片出现重复,TCP的接收端需要丢弃重复的数据。
  9. 数据效验:TCP通过保持它首部和数据的检验和来检测数据在传输过程中的任何变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2606.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【专题】基于服务的体系结构

对于面向服务的体系结构&#xff08;Service-Oriented Architecture&#xff0c;SOA&#xff09;的几种定义&#xff1a; W3C&#xff1a;SOA是一种应用程序体系结构&#xff0c;在这种体系结构中&#xff0c;所有功能都定义为独立的服务&#xff0c;这些服务带有定义明确的可…

AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO

问题 折磨的开始是天下苦黄狗久矣&#xff0c;为了不再被讨乞丐的显存恶心&#xff0c;一怒之下购入了AMD显卡&#xff08;20GB显存确实爽 头一天就跑了3dmark验机&#xff0c;完美通过&#xff0c;玩游戏也没毛病 但是呢这厮是一点不省心&#xff0c;玩游戏没问题&#xff0c…

小容器拉动大市场 全面云原生化刻不容缓

毋庸置疑&#xff0c;容器技术的发展推动了云原生计算革命。当前&#xff0c;在云原生已经成为企业用云新常态的情况下&#xff0c;作为一项核心能力&#xff0c;容器管理与服务也成了检验云服务商的试金石。Omdia最新发布的《Omdia Universe: Cloud Container Management &…

一招帮你搞懂数据结构的插入、删除

目录 一、尾部插入&#xff08;添加&#xff09; 1.初始化 2.一个打印数组的函数 3.尾插 4.完整版 二、任意位置插入 1.流程图 2.任意插 3.完整版 三、指定数据删除 1.流程图 2. 删除&#xff08;首位查找到的元素&#xff09; 四、删除所有 思想 代码 五、有序…

二叉树相关算法

满二叉树&#xff1a;每层都是满的 完全二叉树&#xff1a;特殊的满二叉树&#xff0c;可以有一个子节点&#xff0c;但最后一层必须是从左到右排列&#xff0c;中间不能有空隙&#xff0c;强调除了最后一层外&#xff0c;其他层都是满的 一、dfs深度搜索 例题&#xff1a;求…

Sigrity Power SI VR noise Metrics check模式如何进行电源噪声耦合分析操作指导

SSigrity Power SI VR noise Metrics check模式如何进行电源噪声耦合分析操作指导 Sigrity Power SI的VR noise Metrics check模式本质上是用来评估和观测器件的电源网络的耦合对于信号的影响,输出S参数以及列出具体的贡献值。 以下图为例

OpenGL入门004——使用EBO绘制矩形

本节将利用EBO来绘制矩形 文章目录 一些概念EBO 实战简介utilswindowFactory.hRectangleModel.hRectangleModel.cpp main.cppCMakeLists.txt最终效果 一些概念 EBO 概述&#xff1a; Element Buffer Object 用于存储顶点的索引数据&#xff0c;以便在绘制图形时可以重用顶点数…

Qt 视口和窗口

Qt 视口和窗口 1、视口和窗口的定义与原理 绘图设备的物理坐标是基本的坐标系&#xff0c;通过 QPainter 的平移、旋转等变换可以得到更容易操作的逻辑坐标。 为了实现更方便的坐标&#xff0c;QPainter 还提供了视口 (Viewport)和窗口 (Window)坐标系&#xff0c;通过Q…

hunyuan-DiT模型部署指南

一、介绍 Hunyuan-DiT是由腾讯混元推出的扩散模型&#xff0c;支持中文和英文双语输入&#xff0c;其他开源模型相比&#xff0c;Hunyuan-DiT 在中文到图像生成方面树立了新的水平。 二、部署流程 环境要求&#xff1a; 所需的最小 GPU 内存为 11GB&#xff0c; 建议使用具…

Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用

一、Sequential 的使用方法 在手撕代码中进一步体现 torch.nn.Sequential 二、手撕 CIFAR 10 model structure 手撕代码&#xff1a; import torch from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linear from torch.utils.tensorboard import Su…

硬件测试工程师之EMC项目-电磁干扰-谐波测试标准解析思维导图

1&#xff1a;链接上一篇文章 ​​​​​​​相关链接&#xff1a;https://blog.csdn.net/weixin_49492286/article/details/135210741 2&#xff1a;重新总结思维导图并进行深入解析EMC-谐波测试项目 本人重新再次总结这个EMC谐波的标准解析思维导图&#xff0c;并且附上相…

ArcGIS 地理信息系统 任意文件读取漏洞复现

0x01 产品简介 ArcGIS是由美国Esri公司研发的地理信息系统(GIS)软件,它整合了数据库、软件工程、人工智能、网络技术、云计算等主流的IT技术,旨在为用户提供一套完整的、开放的企业级GIS解决方案,它包含了一套带有用户界面组件的Windows桌面应用。可以实现从简单到复杂的…

安全合规:沃尔玛自养号测评技术搭建要点

沃尔玛自养号测评技术的搭建是一个复杂且需综合考量多方面因素的过程&#xff0c;以下是对其技术搭建的详细解析&#xff1a; 一、硬件与网络环境搭建 硬件参数伪装&#xff1a; 利用国外服务器在云端搭建安全终端&#xff0c;全面阻断沃尔玛平台对设备底层硬件参数的检测&a…

Ps:天空替换

Ps菜单&#xff1a;编辑/天空替换 Edit/Sky Replacement Ps菜单&#xff1a;选择/天空 Select/Sky 天空替换 Sky Replacement命令能够自动分析前景与天空&#xff0c;利用 Adobe Sensei 技术也大大减轻了制作蒙版的负担&#xff0c;可以直观、智能、快速地实现天空替换。 到目…

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

前言 &#x1f31f;&#x1f31f;本期讲解关于TCP/UDP协议的原理理解~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不多说…

MySQL 9从入门到性能优化-加密函数

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

探索空间计算与 VR 设备的未来:4K4DGen 高分辨率全景 4D 内容生成系统

在当今科技飞速发展的时代,空间计算和 VR 设备正逐渐成为人们体验沉浸式场景的重要工具。而今天,我们要为大家介绍一款具有创新性的技术 ——4K4DGen 高分辨率全景 4D 内容生成系统,它为 VR/AR 沉浸式体验带来了全新的可能性。 一、项目概述 4K4DGen 项目的核心目标是实现 …

Unity中实现伤害飘字或者提示飘字效果(DoTween实现版本)

&#xff01;&#xff01;&#xff01;在实现以下效果之前&#xff0c;一定要往项目中导入DoTween插件。 一、搭建测试场景 1、在场景中新建一个带有Text组件的游戏物体A&#xff0c;并把这个游戏物体A中Text组件的Color属性中alpha值为0&#xff0c;让文字在场景中隐藏。 …

为什么说模拟电路的难点就在开通过程和关断过程?难在什么地方?

模拟电路中开通过程和关断过程之所以困难&#xff0c;主要有以下几个方面的原因&#xff1a; 1. 瞬态响应特性复杂 - 在开通和关断瞬间&#xff0c;电路中的电流和电压会发生快速变化&#xff0c;产生复杂的瞬态响应。这些瞬态响应可能包含过冲、下冲、振铃等现象&#xff0c;…

数据结构---二叉树(顺序结构),堆(上)

树 树的概念与结构 树是⼀种⾮线性的数据结构,它是由 n(n>=0) 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。 PS 有⼀个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成…