首页 / PYTHON / Python_网络编程
Python_网络编程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python_网络编程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3585字,纯文字阅读大概需要6分钟。
内容图文
![Python_网络编程](/upload/InfoBanner/zyjiaocheng/638/80a66b64d11e452b8423a4324e93ba33.jpg)
简述 OSI 七层协议。
物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层:定义了电信号的分组方式
网路层:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
传输层:建立端口到端口的通信
会话层:建立客户端与服务端连接
表示层:对来自应用层的命令和数据进行解释,按照一定格式传给会话层。如编码、数据格式转换、加密解密、压缩解压
应用层:规定应用程序的数据格式
什么是C/S和B/S架构?
c/s架构,就是client(客户端)与server(服务端)即:客户端与服务端的架构。 b/s架构,就是brosver(浏览器端)与sever(服务端)即:浏览器端与服务端架构 优点:统一了所有应用程序的入口、方便、轻量级
简述 三次握手、四次挥手的流程。
三次握手: 第一次握手 1:客户端先向服务端发起一次询问建立连接的请求,并随机生成一个值作为标识 第二次握手 2:服务端向客户端先回应第一个标识,再重新发一个确认标识 第三次握手 3:客户端确认标识,建立连接,开始传输数据 四次挥手 ---> 断开连接 第一次挥手 客户端向服务端发起请求断开连接的请求 第二次挥手 服务端向客户端确认请求 第三次挥手 服务端向客户端发起断开连接请求 第四次挥手 客户端向服务端确认断开请求
TCP和UDP的区别?
TCP/UDP区别 TCP协议是面向连接,保证高可靠性传输层协议 UDP:数据丢失,无秩序的传输层协议(qq基于udp协议)
为何基于tcp协议的通信比基于udp协议的通信更可靠?
tcp:可靠,因为只要对方回了确认收到信息,才发下一个,如果没收到确认信息就重发 UDP:不可靠,它是一直发数据,不需要对方回应 流式协议: TCP协议,可靠传输 数据报协议: UDP协议,不可传输
什么是socket?简述基于tcp协议的套接字通信流程
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面, 对用户来说,一组简单的接口就是全部。 服务端: 创建socket对象, 绑定ip端口bind(), 设置最大链接数listen(), accept()与客户端的connect()创建双向管道,等到联接, send(), recv(), 收发数据 close() 客户端: 创建socket对象, connect()与服务端accept()创建双向管道 , send(), recv(), close()
什么是粘包? socket 中造成粘包的原因是什什么? 哪些情况会发生粘包现象?
只有TCP有粘包现象,UDP永远不会粘包 粘包:在获取数据时,出现数据的内容不是本应该接收的数据,如:对方第一次发送hello,第二次发送world, 我方接收时,应该收两次,一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包 原因 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据了很小,会合到一起,产生粘包) 2、接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包)
简述 进程、线程、协程的区别 以及应用场景?
线程是指进程内的一个执行单元, # 进程 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 # 线程 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度 # 协程和线程 协程避免了无意义的调度,由此可以提高性能;但同时协程也失去了线程使用多CPU的能力 进程与线程的区别 (1)地址空间:线程是进程内的一个执行单位,进程内至少有一个线程,他们共享进程的地址空间,而进程有自己独立的地址空间 (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内线程共享进程的资源 (3)线程是处理器调度的基本单位,但进程不是 (4)二者均可并发执行 (5)每个独立的线程有一个程序运行的入口 协程与线程 (1)一个线程可以有多个协程,一个进程也可以单独拥有多个协程,这样Python中则能使用多核CPU (2)线程进程都是同步机制,而协程是异步 (3)协程能保留上一次调用时的状态
GIL锁是什么?
GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。 GIL保护的是解释器级的数据,保护用户自己的数据则需要自己加锁处理
?
内容总结
以上是互联网集市为您收集整理的Python_网络编程全部内容,希望文章能够帮你解决Python_网络编程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。