![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python网络编程
雨醉东风
人生苦短,我用Python!
展开
-
协程
【协程】1.定义:纤程 微线程,协程本质只有一个线程在运行2.功能原理:通过应用层程序,记录上下文栈区,实现在程序执行过程中的跳跃,选择可以不阻塞的部分执行,从而提高IO的执行效率3.优点:1.资源消耗很少2.无需多线程那样来回切换的开销3.无需进行同步互斥操作4.IO并发性好 缺点:1.无法利用计算机的多核资源2.程序不能够一个客户端单独长时间占有服务端4.底层实现...原创 2020-01-21 10:58:16 · 100 阅读 · 0 评论 -
线程
【线程】1.什么是线程:线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。(在创建和删除时消耗的计算机资源小)2.线程的特征:线程是计算机核心分配的最小单位。一个进程可以包含多个线程线程也是一个运行过程,也要消耗计算机资源。多个线程共享进程的资源和空间。(空间,全局变量,分配的内存等)线程也拥有自己特有的资源属性,比如指令集,TID等线程无论是创建删...原创 2020-01-21 10:55:19 · 135 阅读 · 0 评论 -
进程-同步互斥机制
【同步互斥】1.同步互斥机制目的:解决对共有资源操作产生的争夺临界资源:多个进程或线程都能够操作的资源(例如终端)临界区:操作临界资源的代码段同步:同步是一种合作关系,为完成某个任务多进程和多线程之间形成一种协调,按照约定或条件依次执行操作临界资源,相互告知资源使用情况。(这种协调可能是因为阻塞关系达成的)互斥:互斥是一种制约关系,当一个进程或者线程进...原创 2020-01-21 10:45:26 · 1083 阅读 · 0 评论 -
进程间通信
【进程间通信】进程间由于空间独立,资源互相无法直接获取此时在不同的进程间传递数据就需要专门的进程间通信方法和磁盘交互:使用中间文件,但是不安全,速度慢进程间通信方法(IPC):管道、消息队列、共享内存、信号、信号量、套接字【管道通信Pipe】1.原理:在内存中开辟一块空间,形成管道结构,管道对多个进程可见,进程可以通过对管道的读写操作进行通信2.[multiproc...原创 2020-01-21 10:41:29 · 183 阅读 · 0 评论 -
孤儿进程、僵尸进程
【孤儿进程】产生条件:父进程先于子进程退出,此时子进程就会成为孤儿进程特征:孤儿进程会被系统指定的进程的收养,即系统进程会成为孤儿进程新的父进程当孤儿进程退出时,‘继父’会处理孤儿进程退出状态,使其不会成为僵尸【僵尸进程】产生条件子进程先于父进程退出,父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程特征:*僵尸进程会滞留部分PCB信息在...原创 2020-01-21 10:31:56 · 133 阅读 · 0 评论 -
服务器模型、多进程并发
【服务器模型】【服务器的基本介绍】硬件服务器:主机 集群生产服务器厂商:IBM、HP、联想、浪潮软件服务器:编写的服务端程序,依托于硬件服务器运行,提供给用户一定的软件服务分类: webserver—>网络后端程序提供网络请求的后端处理和数据交互httpserver—>处理HTTP请求、回复http响应邮箱服务器—>提供邮箱服务文件服务器—&g...原创 2020-01-21 10:27:44 · 388 阅读 · 0 评论 -
多线程并发模型
【多线程并发模型】基于threading的多线程并发1.对比多进程并发:1.优点:资源消耗小2.缺点:需要注意共享资源的争夺python多线程收到GIL的影响2.实现方式:threading socket 模块完成3.实现步骤:1.创建套接字,绑定,监听2.接收客户端连接请求,创建新的线程3.主线程继续等待其他客户端连接,分支线程执行客户端请求4.处理完客户端请求后,分...原创 2020-01-21 10:24:20 · 521 阅读 · 0 评论 -
多进程的概念
【多进程】进程的定义:程序在计算机中的一次执行过程程序与进程的区别:程序:是一个静态的过程,占有磁盘,不占用计算机的运行资源进程:是一个动态的过程描述,占有(CPU内存)计算机的资源,有一定的生命周期注意:同一个程序,每次运行都是不同的进程。因为分配的计算机资源不同,生命周期也不同进程的创建流程:用户空间运行一个程序,发起进程的创建(申请创建进程)操作系统接受用户...原创 2020-01-21 10:20:06 · 2165 阅读 · 0 评论 -
创建自定义进程类,进程池
【创建自定义进程类】继承Process类运行Process类的__init__以获取父类属性重写run方法,在通过自定义类生成对象后,调用start()会自动执行这个方法示例:from multiprocessing import Processimport timeclass ClockProcess(Process): def __init__(self, valu...原创 2020-01-21 10:17:58 · 528 阅读 · 0 评论 -
socket服务器集成模块
python2 SocketServerpython3 socketserver1.功能:通过模块的接口完成基于多进程/多线程的tcp/udp的socket并发程序2.模块类:DatagramRequestHandler 处理udp请求StreamRequestHandler 处理tcp请求UDPServer 提供udp服务端类TCPServer 提供tcp服务端类Forking...原创 2020-01-21 10:13:39 · 193 阅读 · 0 评论 -
multiprocessing创建进程
【创建进程】multiprocessing 模块创建进程 标准库1、需要将要做的事件进行封装成函数2、使用multiprocessing提供的类Process创建进程对象3.通过对象和Process的初始化函数对进程进行设置以及绑定要执行的事件4、启动进程,进程启动会自动执行函数代表的事件5、完成进程回收创建进程对象:multiprocessing.Process()功能...原创 2020-01-21 10:10:43 · 400 阅读 · 0 评论 -
fork创建进程idppid
【需求】:编写一个程序能够同时做多件任务【方案】:写一个程序,根据需要在程序内部可以创建多个进程完成任务1.import os pid = os.fork()函数 功能:创建一个新的进程 参数:无 返回值: 1.失败返回一个负数 -1 2.成功:在原有进程中返回(大于0的正整数)新进程的PID号,在新进程中返回0 总结: 1.子进程会复制父进程全部代码段,包括fork...原创 2020-01-21 10:05:33 · 278 阅读 · 0 评论 -
IO
【IO input output】在内存中存在数据交换的操作都可以认为是输入输出比如:内存和磁盘交互 读写操作内存和网络交互 recv sendIO密集型程序:程序执行大量的IO操作,而较少的cpu运算特点:消耗cpu较少,运行时间长CPU密集型程序(计算密集型):程序中大量的操作都需要cpu运算,IO操作较少特点:消耗cpu大,运行速度快IO分类:阻塞IO 非...原创 2020-01-21 09:58:27 · 137 阅读 · 0 评论 -
基础的HTTP服务器
【基础的http服务器】接收HTTP请求给出一定的响应# http_server.py# 基础的http服务器# 1.接收HTTP请求# 2.给出一定的响应# 在浏览器输入本机ip:端口号即可访问index.htmlfrom socket import *# 处理客户请求,返回响应def handleClient(connfd): # 接收消息 requ...原创 2020-01-21 09:50:02 · 156 阅读 · 0 评论 -
基于UDP的编程
【基于upd的服务端】创建套接字—>数据报套接字sockfd = socket(AF_INET,SOCK_DGRAM)绑定服务端地址sockfd.bind()消息的收发data = recvfrom(buffersize)功能:接收UDP消息参数:每次最多接收消息的大小返回值:接收到的内容接收到的消息的发送者注意:recvfrom一次接收一个数据包,如果数...原创 2020-01-21 09:48:03 · 133 阅读 · 0 评论 -
套接字sockets
【sockets套接字编程】1.目的:通过编程语言提供的函数接口进行组合,更简单的完成基于tcp或者udp通信的网络编程2.套接字:完成上述目标的一种编程方法3.套接字分类:流式套接字(SOCK_STREAM): 传输层基于tcp的协议进行通信数据报套接字(SOCK_DGRAM): 传输层基于udp协议进行通信底层套接字(SOCK_RAM): 访问底层协议的套接字 &n...原创 2020-01-21 09:43:10 · 251 阅读 · 0 评论 -
流式套接字(基于TCP)
【流式套接字的编程(基于tcp协议的】1.TCP服务端:import socket1.创建套接字 socket.socket(socket_family=AF_INET, socket_type=SOCK_STREAM proto=0) 功能:创建一个套接字 参数:socket_family : 选择地址族类型AF_INET 使用IPV4 socket_typ...原创 2020-01-21 09:32:15 · 2089 阅读 · 0 评论 -
网络基础概念
【七层模型】网络的起源(了解)网络的目的:数据的传输ISO: 国际标准化组织1.OSI:七层模型-----> 网络通信的标准化流程1.应用层:提供用户服务,具体内容由特定程序规定2.表示层:数据的压缩优化加密3.会话层:建立应用连接,选择传输层服务4.传输层:提供数据传输服务,流量控制5.网络层:路由选择,网络互联6.链路层:提供链路交换,具体的消息的发送7.物理层:物...原创 2020-01-21 09:23:48 · 226 阅读 · 0 评论