位置: 编程技术 - 正文

实例讲解Python中SocketServer模块处理网络请求的用法(python语言例子)

编辑:rootadmin

推荐整理分享实例讲解Python中SocketServer模块处理网络请求的用法(python语言例子),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 例子,python 例,python例子大全,python100例详解,python例子大全,python的例子,python 例子,python100例详解,内容如对您有帮助,希望把文章链接给更多的朋友!

SocketServer创建一个网络服务框架。它定义了类来处理TCP,UDP, UNIX streams 和UNIX datagrams上的同步网络请求。

一、Server Types

有五个不同的服务器类在SocketServer中。

1.BaseServer定义了API, 而且他不是用来实例化和直接使用的。2.TCPServer用作TCP/IP的socket通讯。3.UDPServer使用datagram sockets。4.UnixStreamServer和UnixDatagramServer使用Unix-domain sockets而且智能在unix平台上使用。

二、Server Objects

构建一个服务器, 通过它来监听请求的地址和请求的处理类(not instance)。

1.class SocketServer.BaseServer这是模块中所有服务器对象的超类,它定义了接口,实现大多数都在子类中完成。

2.BaseServer.fileno

返回一个整数文件描述符来表示哪个服务器正在监听。这个函数最常见的传递给select.select(),允许监控多个相同处理过程的服务。

3.BaseServer.handle_request

处理单一的请求,这个函数会顺序调用接下来的方法。get_request(),verify_request和proccess_request。用户提供handle()方法抛出一个异常,那么handle_error()方法会被调用。self.timeout的时间内没有收到请求,handle_timeout()和handle_request()将返回。

4.BaseServer.serve_forever

BaseServer.serve_forever(poll_interval=0.5),处理请求一直到明确的shutdown()请求。轮训每隔poll_interval时间内关闭。忽略self.timeout,如果需要使用定时任务,需要使用其他线程。

5.BaseServer.shutdown

告诉serve_forever()循环停止。

实例讲解Python中SocketServer模块处理网络请求的用法(python语言例子)

6.BaseServer.RequestHandlerClass

用户请求处理程序类,为每个请求创建这个类的一个实例。

三、Implementing a Server

如果你创建一个服务器,它通常可以重复使用现有的类和简单的提供一个自定义请求处理的类。如果不符合需求,有几种BaseServer方法覆盖一个子类。

1.verify_request(reqeust, client_address): 必须返回一个布尔值,如果返回True,请求将被处理,如果返回False,请求将被拒绝。这个函数可以覆盖来实现访问控制服务。2.process_request(request, client_address): 调用finish_request来创建一个RequestHandlerClass()的实例,如果需要该函数可以创建一个新的进程或协程来处理请求。3.finish_request(request, client_address): 创建一个请求处理实例。调用handle()来处理请求。

四、Request Handlers

请求处理程序做的大部分工作接收传入的请求,并决定采取何种行动。处理程序负责实现“协议”上的套接字层(例如,HTTP或xml - rpc)。从传入的请求处理程序读取请求数据通道,流程,和写一个响应。有三个方法可以重写。

1.setup(): 准备请求的请求处理程序, 就是初始化运行在handle之前。2.handle(): 做真正的请求工作。解析传入的请求,处理数据和返回响应。3.finish(): 清理任意时间创建的setup()。

五、例子

下面例子展示了tcp, udp和异步

1.TCPServer 例子

2.UDPServr 例子

3.异步例子

可以通过ThreadingMixIn和ForkingMixIn类来构造异步处理程序。

4.SocketServer 实现客户端与服务器间非阻塞通信(1)创建SocketServerTCP服务端

(2)创建SocketServerTCP客户端

详解Python中contextlib上下文管理模块的用法 咱们用的os模块,读取文件的时候,其实他是含有__enter____exit__。一个是with触发的时候,一个是退出的时候。withfile('nima,'r')asf:printf.readline()那咱们自己

深入解析Python中的上下文管理器 1.上下文管理器是什么?举个例子,你在写Python代码的时候经常将一系列操作放在一个语句块中:(1)当某条件为真?执行这个语句块(2)当某条件为真

Python中的with语句与上下文管理器学习总结 0、关于上下文管理器上下文管理器是可以在with语句中使用,拥有__enter__和__exit__方法的对象。withmanagerasvar:do_something(var)相当于以下情况的简化:var=manag

标签: python语言例子

本文链接地址:https://www.jiuchutong.com/biancheng/387657.html 转载请保留说明!

上一篇:Python中asyncore异步模块的用法及实现httpclient的实例(python async)

下一篇:详解Python中contextlib上下文管理模块的用法(python convexhull)

  • 计入职工福利费的有哪些
  • 怎么结转未交增值税
  • 旅游公司如何缴费
  • 合同负债里面含增值税吗
  • 税务逾期记录怎么消除不了
  • 小规模企业发生了增值税,如何计提附加税
  • 法院拍卖土地欠土地使用税
  • 境内货代公司之间付美金
  • 股东垫付工资如何做账
  • 土地租金一次付清的会计处理怎么做?
  • 开具发票财务需要管理吗?
  • 差额纳税销项税额抵减
  • 印花税是填开票金额吗
  • 吊车租赁费可以开现代服务吗
  • 《减免所得税优惠明细表》
  • 个人租车给公司租金多少合适
  • 营改增后如何确认老项目营改增前收入
  • 津贴证明是让单位开吗
  • 增值税发票国家收几个点的钱
  • 多计提的费用怎么冲销
  • 本月没有销项只有进项,月末怎么做账
  • 转账支票到期了怎么兑现
  • 以前年度损益调整属于哪类科目
  • 企业的无形资产有哪些
  • 新买的电脑如何激活windows
  • windows update更新错误
  • PHP:mb_internal_encoding()的用法_mbstring函数
  • 股份有限公司变更法人的流程
  • PHP:mcrypt_enc_get_key_size()的用法_Mcrypt函数
  • 一般纳税人辅导期什么意思
  • 委托加工应税消费品的纳税义务人是受托方
  • 股东分红企业代扣个税
  • ai图片生成矢量图
  • vs命令参数
  • 小企业发票打印流程
  • 长期股权投资初始计量会计科目
  • java enum tostring
  • 劳务费支出计入什么会计科目
  • 自查补缴增值税附表一怎么填写
  • 兼职属于劳务关系吗
  • 受托加工的物资是存货吗
  • mongodb 根据条件查询数量
  • 银行承兑汇票如果到期了企业没有兑付
  • 小规模纳税人场地租赁发票税率是多少
  • 小企业会计准则调整以前年度费用分录
  • 金税盘分盘可以全额抵扣吗
  • 电子产品对外加工
  • 增值税销项税额属于什么科目
  • 制造费用的归集是什么意思
  • 收到税务局退回的个税手续费怎么入账
  • 主营业务成本借贷方向增减
  • 公司有外籍人员怎么办
  • 应付职工薪酬应该在借方还是贷方
  • 经纪代理代订机票差额专票抵扣
  • 现代服务业如何提高服务的效率和质量
  • 蓝字发票怎么作废
  • mysql macbook安装教程
  • window小技巧
  • FC7中用yum自动搜索安装软件
  • ubuntu安装lnmp环境
  • 苹果系统怎么更新
  • centos7软件安装
  • graphics.dll
  • macbookair怎么验证
  • windows8桌面设置
  • w10运行命令在哪
  • 变量选择lasso
  • opengl语言
  • javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
  • 获取本站的context root
  • 在shell脚本中$用于
  • 仿京东首页html5
  • Python中random模块
  • zabbix 微信
  • 深圳企业所得税税率多少
  • 泌阳县国土资源局崔超
  • 农产品核定管理办法最新
  • 开展和组织开展什么区别
  • 纳税信用等级在哪里查
  • 千兆交换机涨价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设