python之socketserver实现并发
python之socketserver实现并发
服务端
import socketserver
#socketserver模块是用来实现并发
# 我们自己的类里一定要继承socketserver.BaseRequestHandler方法
# 里面需要一个handle方法
# 每当客户端来连接时,就会创建一个实例,实例与实例之间独立
# 实例包含
# self.request:conn 作用:服务端收发信息的对象
# self.client_address:addr 作用:客户端的ip地址
class Myserver(socketserver.BaseRequestHandler):
def handle(self):
print("conn is:"+str(self.request))
print("conn is:" + str(self.client_address)) #通讯循环
while True:
#收信息
try:
data = self.request.recv(1024).decode('utf-8')
if data:
print("客户端发过来的信息:" + data) # 发信息
self.request.sendall(data.upper().encode('utf-8'))
except Exception as e:
continue
if __name__=="__main__":
#链接循环
#这个方法需要两个参数,((ip,port),Myserver)
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)
#永远运行
s.serve_forever() #socketserver.ThreadingTCPServer()方法循环不端的接收新的连接
#handle()方法与客户端循环进行通讯
客户端
import socket def main():
ip_port = ('127.0.0.1', 8080) s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s2.connect(ip_port) # 连接服务端 while 1:
data1 = input("-->").strip()
if not data1:continue
if data1 =='quit':break
s2.sendall(data1.encode('utf8'))
data2=s2.recv(1024)
print(data2.decode("utf-8"))
if __name__ == '__main__':
main()
关于socketserver更多的介绍和使用,可以看一下这篇博文:
https://www.cnblogs.com/Security-Darren/p/4594393.html
python之socketserver实现并发的更多相关文章
- python 39 socketserver 模块并发通信
socketserver模块 socketserver模块实现一个服务端与多个客户端通信.是在socket的基础上进行了一层封装,底层还是调用的socket. socketserver干了两件事: 1 ...
- python利用socketserver实现并发套接字功能
本文实现利用python的socketserver这个强大的模块实现套接字的并发 目录结构如下: 测试文件请放在server_file文件夹里面 server.py #!/usr/bin/env py ...
- Python基础-socketserver
ocketserver通讯模块实现并发操作,基于select.epoll.socket.多线程,实现的正真多线程多并发 socketserver通讯模块底层调用的socket模块,只是它作了处理基于l ...
- 文件上传下载、socketserver(并发)、解读socketserver源码
1.文件上传/下载 学习了socket套接字,我们现在可以写一个文件上传/下载的程序,如下示例: 分析上边代码,我们发现,client发送上传文件相关信息的字典序列化之后,server又给client ...
- Python 多线程教程:并发与并行
转载于: https://my.oschina.net/leejun2005/blog/398826 在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global int ...
- 36、IO模型与socketserver实现并发
特别声明本随笔copy于egon(林海峰). 一 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronou ...
- socketserver实现并发
socketserver实现并发原理:给每一个前来链接的客户端开启一个线程执行通信.也就是给每一个连接“配备”了一个管家. 下面用一个简单的示例来演示socketserver实现并发(一个服务端,两个 ...
- python 使用多进程实现并发编程/使用queue进行进程间数据交换
import time import os import multiprocessing from multiprocessing import Queue, pool ""&qu ...
- 网络编程socketserver实现并发
import socketserver import struct import json import os class FtpServer(socketserver.BaseRequestHand ...
随机推荐
- I/O模型系列之一:Linux I/O模型基本概念
1. IO模型矩阵 基本 Linux I/O 模型的简单矩阵: 同步与异步:描述的是用户线程与内核的交互方式. 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞! 同步是指用户线程发起IO请 ...
- Elasticsearch 快速开始
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎. 查询 : Elasticsearch 允许执行和合并多种类型的搜索 - 结构化.非结构化.地理位置.度量指标 - ...
- 多模块项目Module must not contain source root. The root already belongs to module
多模块项目Module "*" must not contain source root *. The root already belongs to module "* ...
- python之路(4)高阶函数和python内置函数
前言 函数式编程不用变量保存状态,不改变变量 内置函数 高阶函数 把函数当作参数传给另一个对象 返回值中包含函数 使用的场景演示: num_test = [1,2,10,5,8,7] 客户说 :对上述 ...
- uCos-II中任务的同步与通信
任务的同步与通信 任务间的同步 在多任务合作工作过程中,操作系统要解决两个问题: 各任务间应该具有一种互斥关系,即对某些共享资源,如果一个任务正在使用,则其他任务只能等待,等到该任务释放资源后,等待任 ...
- mybatis中 keyProperty="id" 的作用
keyProperty="id"的作用是: 一般都是结合数据库自动生成主键来使用,由于是数据库生成的主键, 所以在这个对象持久化到数据库之前是对象中的这个属性是没有属性值的,但是在 ...
- Primavera——免费版本的下载和使用
1.oracle收购了Primavera后,开启了以下版本的免费使用. 进入License Codes查看目前支持的版本,并下载与下载版本的无线许可文件. 2.下载软件 进入Oracle Softwa ...
- 通过<meta>标签指定IE的文档模式实现CSS3兼容
今天发现之前做好的一个页面在IE中打开显示的效果不正常,本地和服务器上显示的是两种不同的样式. 经过确认文档内容和CSS都是一样的. 通过IE F12(开发人员工具)发现不正常的样式 浏览器文档模式自 ...
- jenkins 自动化部署执行shell
# -*- coding:utf-8 _*-""" @author:Administrator @file: new_app_publish.py @time: 2018 ...
- jquery弹出窗口选择回写值
$(document).ready(function(){ $('.sel').dblclick(function(){ var nowid=$(this).attr('id'); window.op ...