首页 > 其他分享 >近期知识总结---20221230

近期知识总结---20221230

时间:2022-12-31 00:11:43浏览次数:50  
标签:总结 obj socket 20221230 程序 --- cpu 服务端 客户端

交换机:能够将所有接入交换机的计算机互连起来,形成一个局域网。
路由器:也叫网关设备,用来连接局域网与局域网的。
广播:在一个局域网内,对所有的每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号。
广播风暴:接入同一台交换机的多台计算机同时发广播。

.

OSI七层模型 (Open System Interconnect),全称为开放系统互相连接
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
物理层: 为终端设备间的数据通信提供  传输介质及其连接设备,(网线,接收器发送器等)
数据链路层:规定了电信号的分组方式,(网卡、交换机) 常把这一层的数据叫做帧
网络层:将从下层接收到的数据进行IP地址的封装和将上层接收到的数据进行IP地址的解封装。(路由器)常把这一层数据叫做数据包
传输层:定义了一些传输数据的协议和端口,如TCP、UDP协议,主要将从下层收到的数据进行分段和传输(tcp的三次握手建立连接,四次挥手普终端连接,造成数据不容易丢失的原因不是因为有双向通道,而是因为有反馈机制)

会话层:主要负责在网络中的两个节点之间建立、维持和终止会话或者说通信。节点简单的认为就是设备
表示层:主要是进行对接收的数据进行解释、压缩与解压等,就是把计算机能够识别的东西转化为人能够识别的东西。
应用层:主要是一些终端的应用,比如说FTP、浏览器、微信等,可以将其理解为在电脑屏幕上可以看到的东西,也就是终端应用。

.

socket是在应表会层 与 传输层之间的一个抽象层,它是一组接口,是进程间通信的一种方式。
如何使用socket
---------------------------------------------
服务端使用socket代码
import socket
server_obj = socket.socket()  # 前一个socket是py文件名,后一个socket是类名,所以产生一个对象
server_obj.bind(('127.0.0.1', 8080))  # 绑定要连接的端口
server_obj.listen(5)  # 设置监听状态,建立半连接池

sock, address = server_obj.accept()  # 等待客户连接,建立双向通道
data = sock.recv(1024)  # 通过双向通道接收客户端发送过来的消息,只接收1024字节
sock.send(b'HTTP/1.1 200 ok\r\n\r\n hello big baby')
sock.close()  # 关闭双向通道
server_obj.close()  # 关闭服务端
-----------------------------------------------
客户端如何使用socket代码
import socket
client_obj = socket.socket()       # 产生一个socket对象
client_obj.connect(('127.0.0.1', 8080))   # 通过ip与端口连接服务端
client_obj.send('大爷有钱 把你们店最好的给我叫出来'.encode('utf8'))
data = client.recv(1024)  # 接收服务端发送过来的消息
print(data.decode('utf8'))
client.close()  # 断开与服务端的链接

当然代码可以优化,服务端的accept上面可以建立连接循环,accept下面可以加个通讯循环,接收消息的地方可以 来个异常监测!!
客户端也是发消息的上面也可以来个通讯循环,原来写死的的消息,可以由input框来动态获取用户输入的信息来发送了。
.

粘包问题解决
利用stuct模块,将一个固定字节长度的数据比如该数据8888KB,利用struct将数字8888打包成一个固定字节长度的报头,因为报头的字节长度服务端能提前知道,所以客户端先发一个报头过去,服务端能够精准的接收到报头的数据。服务端再将报头解析一下,就拿到了客户端要准备发送的真实数据的字节长度。这样客户端再发送真实数据的时候,服务端根据字节长度,就能精准的接收到客户端发过来的真实的数据了,而不会出现粘包现象了,

.

进程:运行的程序
进程的调度算法:时间片轮转法+多级反馈队列
将时间均分 然后根据进程时间长短再分多个等级,等级越靠下表示耗时越长 每次分到的时间越多 但是优先级越低

进程的并行与并发:
并行:多个进程同时执行,默认情况下,单个cpu无法实现并行效果
并发:多个进程看上去像同时执行,实际上不是同时执行

进程的三种状态:就绪态,运行态,阻塞态

阻塞态:进程运行过程中出现了IO操作,阻塞态无法直接进入运行态,需要先进入就绪态排队才能变成运行态

单道技术:所有的程序排队执行 过程中不能重合

多道技术:利用空闲时间提前准备其他数据,最大化提升CPU利用率(比如当cpu在运行程序A的时候,让硬盘去读取程序B,这样当cpu运行完程序A的时候,程序B也已经被硬盘读好了,这个时候cpu就可以直接去运行程序B了,这样cpu就不需要等待了,而且当cpu在运行程序B的同时,让输出的硬件去输出刚刚程序A被cpu运行后的结果,硬件与cpu同时压榨,有活就让它们干,不让它们停下来)

一个程序可能会被分成很多段来被cpu执行,cpu可能执行几段后,就切换给其他程序用了,过一段时间后再回来继续执行该程序!!

计算机的CPU在两种情况下会切换给其他的程序用,1、程序有IO操作  2、一个程序长时间占用CPU
保存状态:CPU每次切换走之前都需要保存当前操作的状态 下次切换回来基于上次的进度继续执行

.

同步:提交完任务之后,原地等待任务的返回结果,期间不做任何事情
异步:提交完任务之后,不愿等待任务的返回结果,就去做其他的事情,有结果自动通知!!
阻塞:进程处于阻塞态,就是进程处在一个等待的状态了
非阻塞:进程处于就绪态或运行态,不处在等待的状态

标签:总结,obj,socket,20221230,程序,---,cpu,服务端,客户端
From: https://www.cnblogs.com/tengyifan888/p/17016088.html

相关文章

  • Windows下jdk安装与卸载-超详细的图文教程
    jdk安装下载jdk由于现在主流就是jdk1.8,所以这里就下载jdk1.8进行演示。官方下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows。官方下载需......
  • 2022年度总结
    诶,去年这个时候,我好像还在机房吧,转眼之间,一年就过去了其实早有预料,预料到自己的高中三年注定是眨眼间就过去了,所以也没啥好惊奇的,毕竟奥赛的时光总是匆匆的,每天的训练也就......
  • 开发“你帮我助”软件的体会总结
    开发“你帮我助”软件的体会总结这里从两个方面讨论自己开发软件的体会。第一部分会概括自己的初始计划、实际开发与计划之间发生了的不一致、会根据这些不一致进行反思、......
  • 2022年总结
    这一年经历很多,很充实,有对亲人内心的思念。有经历爱情后的满心欢喜,走向人生最重要的婚礼殿堂。有着工作中的激情与思维和自我计划的提升。当然还有不可磨灭的大事,......
  • #yyds干货盘点#【愚公系列】2022年12月 微信小程序-小程序登录面板功能实现
    前言一、小程序登录面板功能实现1.主页面<buttonbindtap="showLoginPanel"type="primary">手动打开登录面板</button><LoginPanelshow="{{showLoginPanel}}"></Login......
  • HTML5期末大作业:上海介绍网站设计——代码质量好-上海介绍(5页) HTML+CSS+JavaScript(
    一、作品展示>二、文件目录>三、代码实现>​​h​​<!DOCTYPE ​​html​​><​​head​​>  <metacharset="utf-8"/>  <title>上海旅游介绍</title>  <link......
  • 大数据挖掘-使用频率top20中药材(万字,收藏)
    来自Toby老师,​​大数据挖掘-使用频率top20中药材​​世上一花一草一树木都可能为中药,中药材品种繁多,历代医书众多,方剂上万,为中药研究带来很大难度。目前中药科研缺乏对历代......
  • DC-3
    DC-3前言:这个DC系列去年就做完了,但是因为那时候visualbox老崩搞得头大,一直漏了DC-3没做。现在重新搞好了来完结这个系列扫存活的主机,显示只开了80扫了一下目录,看了几......
  • LeetCode-400. 第N位数字
    题目来源400.第N位数字题目详情给你一个整数n,请你在无限的整数序列 [1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第 n位上的数字。示例1:输入:n......
  • 拿Wordpress Shell的若干方法总结
    拿WordpressShell的若干方法在满足以下条件后,设法通过目标主机的Wordpress后台获得目标主机的Shell:通过目录扫描工具比如Gobuster定位wordpress站点的所在目录;通......