文章目录

  • 1.ip地址
    • 1.1 说明:
    • 1.2 ip地址的作用
    • 1.3 查看ip地址
    • 1.4 检查网络是否正常
  • 2.端口和端口号
    • 2.1 端口号分类
  • 3.tcp的介绍
    • 3.1 tcp
    • 3.2 socket
    • 3.3 tcp网络应用程序开发流程
    • 3.4 tcp客户端程序
      • 3.4.1 socket类
      • 3.4.2 tcp网络应用程序的注意点
    • 3.5 案例-多任务版tcp服务端程序开发
      • 3.5.1 需求
    • 3.6 socket之send和recv原理剖析
      • 3.6.1 tcp socket的发送和接收缓冲区
      • 3.6.2 send原理剖析
      • 3.6.2 recv原理剖析

1.ip地址

网络通信三要素:ip、端口、协议

1.1 说明:

  • ip地址:标识网络中设备的一个地址
  • 分类:IPv4、IPv6
  • IPv4:由点分十进制组成
  • IPv6:由冒号十六进制组成

1.2 ip地址的作用

ip地址的作用是标识网络中唯一的一台设备,通过ip能够找到网络中某台设备

1.3 查看ip地址

  • Linux、macOS:ifconfig
  • window:ipconfig

127.0.0.1表示本机地址,该地址对应的域名是localhost,域名是ip地址的别名,通过域名能解析出一个对应的ip地址

1.4 检查网络是否正常

  • 检查网络是否正常使用:ping

2.端口和端口号

  • 端口是传输数据的通道,是数据传输必经之路。作用是:给运行的应用程序提供传输数据的通道
  • 操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号就是一个数字
  • 端口号可以标识唯一的一个端口。作用是区分和管理不同的端口。

2.1 端口号分类

  • 知名端口号
  • 动态端口号

知名端口号:众所周知的端口号,范围从0~1023

  • 这些端口号一般固定分配给一些服务(21:FTP,文件传输协议服务、25:SMTP,简单邮件传输协议服务、80:HTTP服务)

动态端口号:开发应用程序使用的端口号,范围从1024~65535

  • 如果开发的程序没有设置端口号,操作系统会在动态端口号这个范围随机生成一个给开发的应用程序使用
  • 当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的端口号会被释放

3.tcp的介绍

传输协议:数据传输需要选择一个对应的传输协议,保证程序之间按照指定的传输规则进行数据的通信。

udp: 10% 音视频、广播

  • 无链接,不可靠
  • 消耗资源少
  • 传输数据量小,64k以下

tcp:90%

  • 有链接,可靠连接
  • 消耗资源多
  • 传输数据量大(没有限制)

3.1 tcp

tcp简称输控制协议,它是一种面向连接、可靠的、基于字节流传输层通信协议

面向连接效果图:
面向连接
tcp通信的步骤:

  1. 创建连接
  2. 传输数据
  3. 关闭连接

tcp的特点:

  1. 面向连接
    - 通信双方必须先建立好连接才能进行数据的传输,数据传输完成后,双方必须断开此连接,以释放系统资源。
  2. 可靠传输
    - tcp采用发送应答机制
    - 超时重传
    - 错误校验
    - 流量控制和阻塞管理

3.2 socket

socket简称套接字,是进程间通信的一个工具
socket的作用:负责进程之间的网络数据传输

3.3 tcp网络应用程序开发流程

tcp网络应用程序开发分为:

  • tcp客户端程序开发:运行在用户设备上的程序
  • tcp服务器程序开发:运行在服务器上的程序,专门为客户端提供数据服务

主动发起建立连接请求的是客户端 程序,等待接收连接请求的是服务端程序

1、tcp客户端程序开发流程
tcp客户端程序开发流程
步骤说明:

  1. 创建客户端套接字对象
  2. 和服务端套接字建立对象连接
  3. 发送数据
  4. 接收数据
  5. 关闭客户端套接字

2、tcp服务端程序开发流程
tcp服务端程序开发流程
步骤说明:

  1. 创建服务端套接字对象
  2. 绑定端口
  3. 设置监听
  4. 等待接收客户端的连接请求
  5. 接收数据
  6. 发送数据
  7. 关闭套接字

3.4 tcp客户端程序

3.4.1 socket类

导入 socket 模块:import socket
创建客户端 socket 对象:socket.socket(AddressFamily, Type)
参数说明:

  • AddressFamily:IP地址类型,分为IPv4和IPv6
  • Type:传输协议类型

方法说明:

  • connect((host, port)) 表示和服务端套接字建立连接,host是服务器ip地址,port是应用程序的端口号
  • send(data)表示发送数据,data是二进制数据
  • recv(buffersize)表示接收数据,buffersize是每次接收数据的长度

1、tcp客户端程开发示例:

import socketif __name__ == '__main__':# 创建tcp客户端套接字# 1. AF_INET:表示ipv4# 2. SOCK_STREAM: tcp传输协议tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 和服务端应用程序建立连接tcp_client_socket.connect(("192.168.131.62", 8080))# 代码执行到此,说明连接建立成功# 准备发送的数据send_data = "你好服务端,我是客户端小黑!".encode("gbk")# 发送数据tcp_client_socket.send(send_data)# 接收数据, 这次接收的数据最大字节数是1024recv_data = tcp_client_socket.recv(1024)# 返回的直接是服务端程序发送的二进制数据print(recv_data)# 对数据进行解码recv_content = recv_data.decode("gbk")print("接收服务端的数据为:", recv_content)# 关闭套接字tcp_client_socket.close()

说明:

  1. str.encode(编码格式):把字符串编码为二进制
  2. data.decode(编码格式):把二进制解码为字符串

基本流程:

  1. 导入 socket 模块
  2. 创建 tcp 套接字
    - 参数1:AF_INET表示IPv4地址类型
    - 参数2:SOCK_STAEAM表示tcp传输协议类型
  3. 发送数据:send()
    - 参数1:要发送的二进制数计
  4. 接收数据:recv()
    - 参数1:表示每次接收数据的大小,单位是字节
  5. 关闭套接字:表示通信完成

2、tcp服务端程序开发示例:

import socketif __name__ == '__main__':# 创建tcp服务端套接字tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口号复用,让程序退出端口号立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # 给程序绑定端口号tcp_server_socket.bind(("", 7788))# 设置监听# 128:最大等待建立连接的个数, 提示: 目前是单任务的服务端,同一时刻只能服务与一个客户端,后续使用多任务能够让服务端同时服务与多个客户端,# 不需要让客户端进行等待建立连接# listen后的这个套接字只负责接收客户端连接请求,不能收发消息,收发消息使用返回的这个新套接字来完成tcp_server_socket.listen(128)# 等待客户端建立连接的请求, 只有客户端和服务端建立连接成功代码才会解阻塞,代码才能继续往下执行# 1. 专门和客户端通信的套接字: service_client_socket# 2. 客户端的ip地址和端口号: ip_portservice_client_socket, ip_port = tcp_server_socket.accept()# 代码执行到此说明连接建立成功print("客户端的ip地址和端口号:", ip_port)# 接收客户端发送的数据, 这次接收数据的最大字节数是1024recv_data = service_client_socket.recv(1024)# 对二进制数据进行解码recv_content = recv_data.decode("gbk")print("接收客户端的数据为:", recv_content)# 准备发送的数据send_data = "ok, 问题正在处理中...".encode("gbk")# 发送数据给客户端service_client_socket.send(send_data)# 关闭服务与客户端的套接字, 终止和客户端通信的服务service_client_socket.close()# 关闭服务端的套接字, 终止和客户端提供建立连接请求的服务tcp_server_socket.close()

说明:当客户端和服务端建立连接后,服务端程序退出后端口号不会立即释放,需要等待大概1-2分钟。
解决办法:

  1. 更换服务端端口号
  2. 设置端口号复用,让服务端程序退出后端口号立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)

基本流程:

  1. 导入socket模块:import socket
  2. 创建TCP套接字:tcp_server_socket = socket.socket(…)
    - 参数1: ‘AF_INET’, 表示IPv4地址类型
    - 参数2: ‘SOCK_STREAM’, 表示TCP传输协议类型
  3. 绑定端口号:bind((“ip”, port))
    - 参数: 元组, 比如:(ip地址, 端口号)
  4. 设置监听:listen()
    - 参数: 最大等待建立连接的个数
  5. 等待接受客户端的连接请求
  6. 发送数据:send()
    - 参数: 要发送的二进制数据, 注意: 字符串需要使用encode()方法进行编码
  7. 接收数据:recv()
    - 参数: 表示每次接收数据的大小,单位是字节,注意: 解码成字符串使用decode()方法
  8. 关闭套接字,表示通信完成

3.4.2 tcp网络应用程序的注意点

  1. tcp客户端程序与tcp服务端程序进行通信必须要先建立连接
  2. tcp客户端程序一般不需要绑定端口号,因为客户端是主动发起建立连接的
  3. tcp服务端程序必须绑定端口号,否则客户端找不到这个tcp服务端程序
  4. listen 后的套接字是被动套接字,只负责接收新的客户端的连接请求,不能收发消息
  5. 当 TCP 客户端程序和 TCP 服务端程序连接成功后, TCP 服务器端程序会产生一个新的套接字,收发客户端消息使用该套接字
  6. 关闭 accept 返回的套接字意味着和这个客户端已经通信完毕
  7. 关闭 listen 后的套接字意味着服务端的套接字关闭了,会导致新的客户端不能连接服务端,但是之前已经接成功的客户端还能正常通信
  8. 当客户端的套接字调用 close 后,服务器端的 recv 会解阻塞,返回的数据长度为0,服务端可以通过返回数据的长度来判断客户端是否已经下线,反之服务端关闭套接字,客户端的 recv 也会解阻塞,返回的数据长度也为0

3.5 案例-多任务版tcp服务端程序开发

3.5.1 需求

开发一个能够服务多个客户端的tcp客户端-----线程

  1. 编写一个TCP服务端程序,循环等待接受客户端的连接请求
  2. 当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞
  3. 把创建的子线程设置成为守护主线程,防止主线程无法退出
# 多任务版TCP服务端程序的示例
import socket
import threading# 处理客户端的请求操作
def handle_client_request(service_client_socket, ip_port):# 循环接收客户端发送的数据while True:# 接收客户端发送的数据recv_data = service_client_socket.recv(1024)# 容器类型判断是否有数据可以直接使用if语句进行判断,如果容器类型里面有数据表示条件成立,否则条件失败# 容器类型: 列表、字典、元组、字符串、set、range、二进制数据if recv_data:print(recv_data.decode("utf-8"), ip_port)# 回复service_client_socket.send("ok,问题正在处理中...".encode("utf-8"))else:print("客户端下线了:", ip_port)break# 终止和客户端进行通信service_client_socket.close()if __name__ == '__main__':# 创建tcp服务端套接字tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口号复用,让程序退出端口号立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口号tcp_server_socket.bind(("", 9090))# 设置监听, listen后的套接字是被动套接字,只负责接收客户端的连接请求tcp_server_socket.listen(128)# 循环等待接收客户端的连接请求while True:# 等待接收客户端的连接请求service_client_socket, ip_port = tcp_server_socket.accept()print("客户端连接成功:", ip_port)# 当客户端和服务端建立连接成功以后,需要创建一个子线程,不同子线程负责接收不同客户端的消息sub_thread = threading.Thread(target=handle_client_request, args=(service_client_socket, ip_port))# 设置守护主线程sub_thread.setDaemon(True)# 启动子线程sub_thread.start()# tcp服务端套接字可以不需要关闭,因为服务端程序需要一直运行# tcp_server_socket.close()

流程:

# 1.编写一个tcp服务端程序,循环等待接收客户端的连接请求while True:service_client_socket, ip_port = tcp_server_socket.accept()# 2.当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞while True:service_client_socket, ip_port = tcp_server_socket.accept() sub_thread = threading.Thread(target=handle_client_request, args=(service_client_socket, ip_port))sub_thread.start()# 3.把创建的子线程设置成为守护主线程,防止主线程无法退出while True:service_client_socket, ip_port = tcp_server_socket.accept() sub_thread = threading.Thread(target=handle_client_request, args=(service_client_socket, ip_port))sub_thread.setDaemon(True) sub_thread.start()

3.6 socket之send和recv原理剖析

3.6.1 tcp socket的发送和接收缓冲区

当创建一个tcp socket对象的时候会有一个发送缓冲区和一个接收缓冲区,这个发送和接收缓冲区指的就是内存中的一片空间

3.6.2 send原理剖析

应用程序需要调用操作系统接口,把发送的数据先写入发送缓冲区(内存中的一片空间),再由操作系统控制网卡发送缓冲区的数据发送给服务端网卡

3.6.2 recv原理剖析

应用程序需要调用操作系统接口,由操作系统通过网卡接收数据,把接收的数据写入到接收缓冲区(内存中的一片空间),应用程序再从接收缓冲区获取客户端发送的数据

send和recv原理剖析图
send和recv原理剖析图
说明:

  • 发送数据是发送到发送缓冲区
  • 接收数据是从接收缓冲区获取
  • 不管是recv还是send都不是直接接收接收到对方的数据和发送数据到对方,发送数据会写入到发送缓冲区,接收数据是从接收缓冲区来读取,发送数据和接收数据最终是由操作系统控制网卡来完成
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 2020年最新最全BATJ面试题,Dubbo+MyBatis+MySQL+Spring Boot

    前言:九月,对程序员们来说是一个展现自己,考验自己的时候,因为大部分的程序员都会选择在这个时候面试或是跳槽,(号称是金九银十)。作为程序员的你是否准备好了,会在接下来的金九银十当中更好的展现自己,大显身手呢?金九银十眨眼即到,让你学习的脚步行动起来吧!Dubb…...

    2024/4/21 13:15:46
  2. 什么是免签支付

    免签支付无需企业执照,个人微信支付宝即可收款。 1.使用上和官方接口基本一致,开发只需要按照我们的文档接入即可,减少开发难度。 2.支付宝、微信个人免签支付接口是个系统工程,需要手机端APP、服务器端的相互配合才能完成。 3.零接入成本零支付成本,支付成功率高。 4.安全…...

    2024/4/14 8:00:13
  3. 如何通过Maven导入oracle驱动包

    由于oracle不是开源的,所以它的相关依赖也不是开源的,maven远程仓库没有这个包。所以需要在本地仓库安装一个oracle驱动包,每一次使用maven它都会访问本地仓库的驱动包 格式:mvn install:install-file -Dfile=本地地址 -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion…...

    2024/4/19 7:36:00
  4. Java 版贪吃蛇小游戏

    贪吃蛇小游戏简述实现思路1.绘制静态游戏界面2.绘制可以移动的蛇3.随机生成食物,判断失败条件,积分系统代码分享游戏图片项目打包 简述实现思路 1.绘制静态游戏界面 需要用到Java的GUI编程,用到JFrame类,它是一个容器,允许程序员把其他组件添加到它里面。 如下图所示,就是…...

    2024/4/29 1:32:42
  5. js Array

    概念数组是数据的有序列表 长度可以动态调整(通过length调整,或随着数据的增加删除改变) 每一项可以保存任何数据类型的数据 索引范围是0->length-1 改变原数组的方法有7个:push、pop、unshift、shift、reverse、sort、splice创建数组var arr = new Array() var arr = […...

    2024/4/29 7:13:35
  6. Python数据结构和算法笔记九:树

    文章目录树树的概念树的分类代码表示二叉树二叉树的三种遍历顺序二叉树练习二叉树的后序遍历二叉树的层序遍历翻转二叉树二叉树的最大深度从前序与中序遍历序列构造二叉树二叉树总结 树一种包括节点(nodes)和边(edges)的拥有层级关系的结构 树的形式和家谱非常类似树的概念…...

    2024/4/28 15:35:53
  7. ML、DL、CNN学习记录6

    文章目录ML、DL、CNN学习记录5VAEVAE 工作流程VAEs Detailcode+explainModelOutputGANGAN原理CRNN(多用于文字识别)ML、DL、CNN学习记录5VAE非常适合用于学习具有良好结构的潜在空间,其中特定方向表示数据中有意义的变化轴。 GAN生成的图像可能非常逼真,但它的潜在空间可能…...

    2024/4/22 11:41:19
  8. Redis数据库总结大全

    1.Redis数据结构 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。redis存储的是key, value格式的数据,其中key都是字符串,value有5种不同的数据结构,分别如下:字符串类型string 列表类型list(类似Java中ListlinkedList集合…...

    2024/4/19 22:49:17
  9. 【论文02】信道不确定性下衰落信道中的隐蔽通信《Covert Communication in Fading Channels under Channel Uncertainty》

    前记:这篇也是比较经典的一个论文,讲的是信道不确定下的隐蔽通信问题,虽然文章很短(只有5页),但是行文逻辑清晰,推导严密,而且语言易懂,也许作者是母语非英语的缘故吧。但是读一些国外大牛的论文就会感觉很生涩,仿佛融入不了他们的想法空间哈哈。论文题目: Covert C…...

    2024/4/11 19:28:03
  10. [内附完整源码和文档] 基于JSP实现的影视创作论坛系统

    摘 要 随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评、解读影评的是互联网在传统影视行业下应运而生的产物。 本文讲述了…...

    2024/4/11 19:28:02
  11. Linux虚拟机无法联网问题解决

    Linux虚拟机无法联网问题解决具体步骤如下1、修改网卡配置2、重启网卡3、关闭虚拟机,修改虚拟机的网络适配器4、点击虚拟机,选择编辑项,打开虚拟网络编辑器,点击更改配置,添加VMware VMnet8 的网络5、重启虚拟机,进行测试 具体步骤如下 1、修改网卡配置 打开虚拟机,根据…...

    2024/4/24 21:44:17
  12. Python数据结构和算法笔记一:思路介绍+实用网站/工具

    文章目录解决题目的思路时间复杂度重要工具... 解决题目的思路1、暴力破解:使用笨方法,不考虑时间复杂度和空间复杂度,使用for循环外加创建新的数据结构 2、迭代方法:使用指针,一个指针搞定不了就是用两个,两个不行就三个…,多使用中间变量存储数据,多创建新的数据结构…...

    2024/4/22 6:35:08
  13. (二十一)现在完成时态

    目录现在完成时态1. “主语+have/has+动词过去分词+(宾语)+状语”肯定句构成方式2. “主语+ have/has + 动词过去分词+ (宾语)+ 状语”一般疑问句和否定句构成方式3. "主语+ be + 表语"肯定句构成方式4. "主语+ be + 表语"一般疑问句和否定句构成方式现…...

    2024/4/11 19:27:58
  14. [unity learning] RPG Leaning(九)

    [unity learning] RPG Leaning(九) 写这个文章的目的就是为了初学unity,然后更好的掌握unity中的内容【主要是代码】 学习unity的途径是Brackeys 的教程; 接上篇: unity learning RPG Leaning(八). 目的 一、把Sword和Shield的导入和调用 二、拾起Sword和Shield之后,手部动作…...

    2024/4/11 19:27:57
  15. 竞码编程-蓝桥杯校内选拔赛(决赛)重现赛 OI赛制 赛后试题自制详解(C/C++)

    竞码编程-蓝桥杯校内选拔赛(决赛)重现赛 OI赛制 赛后试题自制详解(C/C++)*仅供备考学习使用,未进行任何商业活动~~~~~~*A. 试题A:好运2020 8’ 描述 JM同学2020想要行大运,所以他想知道,[1,2020]的数中有多少个好运数。对于好运数的定义为:如果x的不同质因子个数不等于4,…...

    2024/4/24 23:05:25
  16. Render函数的参数

    使用vue的Render函数时,可以传以下参数: {// 和`v-bind:class`一样的 API// 接收一个字符串、对象或字符串和对象组成的数组class: {foo: true,bar: false},// 和`v-bind:style`一样的 API// 接收一个字符串、对象或对象组成的数组style: {color: red,fontSize: 14px},// 正常…...

    2024/4/11 19:27:56
  17. (十九)介词across、along、among、outside、into、beyond、against、out of、on to、upon、in front of、according to

    目录介词across1. 表示“穿过,横穿”2. 表示 在...对面3. across 贯穿...地方介词 along介词among介词outside介词 into介词beyond介词against介词out of介词on to介词upon介词 in front of 介词according to少数介词用法区别1. in、on、at表示时间的区别2. in、on、at 表示地…...

    2024/4/30 21:28:36
  18. 我所了解的EC

    我所了解的EC 台式电脑没有EC这个概念,只有笔记 本电脑中才有EC这个芯片。EC(Embed Controller,嵌入式控制器)是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代码。在笔记本中,EC是一直开着的,无论你是在开机或者是关机状态,除非你把电池和Adapter完全卸除…...

    2024/4/28 10:52:46
  19. js拼写sql条件,between and,日期左闭右开的问题

    js拼写sql条件,between and,日期左闭右开的问题 短日期类型默认Time为00:00:00,所以当使用between作限制条件时,就相当于 between ‘2020-8-10 00:00:00’ and ‘2020-8-10 00:00:00’,因此就查不出数据。 提供一种解决思路:补全...

    2024/4/26 20:35:48
  20. 机械制造作业考研题目答案分享——回转体的加工2

    Homework 10 版权声明 本内容由狂小虎原创整合,请不要售卖,为了防止爬虫以及保持免费性,设置为仅粉丝可见。另外,题目以及解释可能不完全正确,仅供参考,同时也欢迎各位在讨论区指点出内容的错误之处。 文章目录版权声明1. 分析下列回转体零件的加工要求,在中批量生产规…...

    2024/4/27 10:21:21

最新文章

  1. gateway中对返回的数据进行处理

    gateway中对返回的数据进行处理 背景1.项目层次 背景 最近公司有个需求是对返回数据进行处理,比如进行数据脱敏。最后在gateway中进行处理。 1.项目层次 根据项目的结构,原本在菜单功能处有对于权限设计的url判断,所以在url后面加了一个正…...

    2024/5/4 10:06:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 零基础 HTML 入门(详细)

    目录 1.简介 1.1 HTML是什么? 1.2 HTML 版本 1.3 通用声明 2.HTML 编辑器 3.标签的语法 4.HTML属性 5.常用标签 5.1 head 元素 5.1.1 title 标签 5.1.2 base 标签 5.1.3 link 标签 5.1.4 style 标签 5.1.5 meta 标签 5.1.6 script 5.2 HTML 注释 5.3 段落标签…...

    2024/5/1 13:12:05
  4. CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    文章目录 一、复杂选择器兄弟选择器:选择平级元素的唯一办法属性选择器:1、通用:基本用不着,太泛了2、自定义:4种伪类选择器:1、目标伪类:2、结构伪类:3、元素状态伪类:4、伪元素选择器:应用于文字,使网页看起来想杂志5、否定伪类:选择器:not([本选择器的条件]) /*…...

    2024/5/3 10:26:16
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/3 11:50:27
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...

    2024/5/3 11:10:49
  10. 【Objective-C】Objective-C汇总

    方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...

    2024/5/3 13:26:06
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...

    2024/5/3 14:57:24
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57