900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍

利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍

时间:2023-03-12 23:39:30

相关推荐

利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍

后端开发|Python教程

Python SocketServer

后端开发-Python教程

利用SocketServer模块来实现网络客户端与服务器并发连接非阻塞通信

微交易源码模拟,怎么彻底删掉ubuntu,爬虫提交搜索请求,php用::调用,广西seo技术lzw

首先,先了解下SocketServer模块中可供使用的类:

网站源码程序哪个,vscode c编程插件,ubuntu自动备份,tomcat8编译,sqlite3添加多行数据,应用 爬虫,php 上传视频文件,网站建设与seo路线,金融网站模版,网页制作模板htmllzw

BaseServer:包含服务器的核心功能与混合(mix-in)类挂钩;这个类只用于派生,所以不会生成这个类的实例;可以考虑使用TCPServer和UDPServer。

TCPServer/UDPServer:基本的网络同步TCP/UDP服务器。

UnixStreamServer/ UnixDatagramServer:基本的基于文件同步TCP/UDP服务器。

ForkingMixIn/ ThreadingMixIn:实现了核心的进程化或线程化的功能;作为混合类,与服务器类一并使用以提供一些异步特性;这个类不会直接实例化。

ForkingTCPServer/ ForkingUDPServer:ForkingMixIn和TCPServer/UDPServer的组合。

BaseRequestHandler:包含处理服务请求的核心功能。这个类只用于派生,所以不会生成这个类的实例可以考虑使用StreamRequestHandler或DatagramRequestHandler。

StreamRequestHandler/ DatagramRequestHandler:用于TCP/UDP服务器的服务处理工具。

网站源码酒类,vscode怎么连接目标,ubuntu的网盘,tomcat 内存 优化,sqlite 连接命令,网页设计 划分4个模块,asp 用什么数据库,云服务器核数,uid靓号商城插件,java前端自动化框架,爬虫私活,php 模拟登录,seo常见问题,选择springboot,动易导航标签,smarty网站程序,网页用户注册代码,prestashop模板,dedecms 后台版权修改,wordpress作者页面,基于jsp的图书馆管理系统的设计与实现,android应用程序源码下载lzw

下面我们正式进入主题,这里我们采用StreamRequestHandler和ThreadingTCPServer来实现客户端与服务器并发连接非阻塞socket。

ThreadingTCPServer派生自ThreadingMixIn,主要实现核心的进程化合线程化功能。

StreamRequestHandler主要用于用于TCP/UDP服务器的服务处理工具。

A、创建SocketServerTCP服务端

#创建SocketServerTCP服务器: import SocketServer from SocketServer import StreamRequestHandler as SRH from time import ctime host = xxx.xxx.xxx.xxx port = 9999 addr = (host,port) class Servers(SRH):def handle(self):print got connection from ,self.client_addressself.wfile.write(connection %s:%s at %s succeed! % (host,port,ctime()))while True: data = self.request.recv(1024) if not data: break print data print "RECV from ", self.client_address[0] self.request.send(data) print server is running.... server = SocketServer.ThreadingTCPServer(addr,Servers) server.serve_forever()

B、创建SocketServerTCP客户端

#from socketfrom socket import * host = xxx.xxx.xxx.xxx port = 9999 bufsize = 1024 addr = (host,port) #client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)client = socket(AF_INET,SOCK_STREAM) client.connect(addr) while True:data = raw_input()if not data or data==exit:breakclient.send(\%s\r\n % data)data = client.recv(bufsize)if not data:breakprint data.strip() client.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。