python socketserver、yagmail、email

1.socket

    socket不支持多并发,socketserver最主要的作用:就是实现一个并发处理,前面只是铺垫。 SocketServer主要是用于解决当多个客户端连接时, Socket服务端都会服务器上创建一个线程或进程来处理该客户端的请求,一个客户端对应一个后端的一个进程或者线程,这样增加系统的利用率。

    SocketServer模块简化了编写网络服务程序的任务。同时SocketServer模块也 是Python标准库中很多服务器框架的基础。

socketserver在python2中为SocketServer,在python3种取消了首字母大写,改名为socketserver。

    socketserver中包含了两种类,一种为服务类(server class),一种为请求处理类(request handle class)。前者提供了许多方法:像绑定,监听,运行…… (也就是建立连接的过程) 后者则专注于如何处理用户所发送的数据(也就是事务逻辑)。

  一般情况下,所有的服务,都是先建立连接,也就是建立一个服务类的实例,然后开始处理用户请求,也就是建立一个请求处理类的实例。  

Poll Epoll IO多路复用介绍
epoll 
直到Linux2.6才出现了由内核直接支持的实现方法,那就是epoll。被公认为Linux2.6下性能最好的多路I/O就绪通知方法。windows不支持 
没有最大文件描述符数量的限制。 
比如100个连接,有两个活跃了,epoll会告诉用户这两个两个活跃了,直接取就ok了,而select是循环一遍。 
(了解)epoll可以同时支持水平触发和边缘触发(Edge Triggered,只告诉进程哪些文件描述符刚刚变为就绪状态,它只说一遍,如果我们没有采取行动,那么它将不会再次告知,这种方式称为边缘触发),理论上边缘触发的性能要更高一些,但是代码实现相当复杂。

    另一个本质的改进在于epoll采用基于事件的就绪通知方式。在select/poll中,进程只有在调用一定的方法后,内核才对所有监视的文件描述符进行扫描,而epoll事先通过epoll_ctl()来注册一个文件描述符,一旦基于某个文件描述符就绪时,内核会采用类似callback的回调机制,迅速激活这个文件描述符,当进程调用epoll_wait()时便得到通知。  

所以市面上上见到的所谓的异步IO,比如nginx、Tornado、等,我们叫它异步IO,实际上是IO多路复用

2.yagmail 发送邮件

user  是邮箱账号

password 是邮箱密码

to 是收件人邮箱,可以是list

subject 是主题

contents 是邮箱正文

attachments 是附件


发送邮件就是这么简单!

3. email发送邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25
  • from_addr: 邮件发送者地址。
  • to_addr: 字符串列表,邮件发送地址。
  • subject: 发送内容


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pythonsocketserver 模块提供了基于 Socket 的服务器基类。它是基于类的,可以帮助您轻松地创建多线程或多进程的网络服务器。 socketserver 模块提供了以下几种服务器类:TCPServer、UDPServer、UnixStreamServer 和 UnixDatagramServer。 ### 回答2: Python SocketServerPython 编程语言的标准库之一,用于创建网络服务器和客户端的程序。SocketServer 提供了一个有力的框架,使得 Python 编写网络服务器和客户端程序更加容易。 Python SocketServer 的主要功能是提供了一个可扩展的框架,使得它非常容易创建定制的服务器和客户端应用程序。SocketServer 包含了多个类和方法,可以支持 TCP 和 UDP 协议,同时支持单线程也支持多线程,提供了简单的接口,允许用户很方便地创建网络应用程序。 Python SocketServer 提供了多个类,包括 ThreadingMixIn 类和 ForkingMixIn 类等,可以实现线程和进程的管理,使得服务器能够同时处理多个客户端的请求。这些类提供了一些方法,如 handle() 和 finish() 等,可用于处理客户端请求和完成服务器响应。 Python SocketServer 还有一些有用的子类,如 TCPServer、UDPServer、BaseServer 等,它们都封装了一些基本的网络协议和方法,使得网络编程更加简单。 Python SocketServer 的使用方法相对简单,我们只需要继承一些基本的类和方法,并重写它们。我们可以根据自己的需要,来实现网络服务器和客户端的功能。 总的来说,Python SocketServer 提供了很强大的功能和易于使用的接口,能够为 Python 的网络编程提供很好的支持。无论是初学者还是专业人士,都可以利用它来实现各种网络应用程序。 ### 回答3: Python中的socketserver是实现网络通信的标准库。它提供了一组类和方法,可以帮助程序员轻松地创建基于Socket的网络服务器和客户端。这个库是基于Python的标准Socket库的,它简化了网络编程的过程,大大降低了错误率和代码复杂度。 Pythonsocketserver库包含了两个主要的类,分别是服务器类和请求类。服务器类是用户自己定义的,继承于socketserver.BaseServer。请求类则是系统预定义的,继承于socketserver.BaseRequestHandler。 socketserver的主要特性如下: 1. 支持TCP和UDP传输协议,灵活、通用。 2. 支持多线程,可以同时处理多个客户端请求,有效提高了服务端的处理并发能力。 3. 支持多进程,可以将服务端实现分布式部署,支持高可用性和拓展性。 4. 支持异步I/O模型,IO阻塞量较小,效率更高。 使用socketserver可以很容易地实现一个简单的服务端和客户端。对于初学者来说,学习socketserver可以更好地了解网络通信的工作原理,掌握基本的网络编程技能。对于实际应用中,我们可以利用socketserver的高并发模式,支持大量的客户端访问,提升系统的处理能力和效率,满足业务需求。 总之,Python socketserver是一个非常有用的网络编程库,以简单、易学、高效、稳定等特点广泛应用于实际开发中。无论是初学者还是经验丰富的开发者,都可以使用它来实现各种网络通信服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值