socketserver 入门练习
个人理解:
个人感觉socketserver其实就是为服务端专门提供的一个用于解决多用户并发访问需求的一个模块
小试牛刀:
服务端socketserver_server.py
import socketserver
''' socketserver_server.py
要使用socketserver实现服务器端代码编写需遵循的三步:
.自己创建一个请求处理类,该类要继承BaseRequestHandler,且还要重写父类的handle()
.实例化TCPServer(UDPServer),并传递server ip和上边创建的请求处理类给这个TCPServer(UDPServer)
.调用实例的handle_request() or serve_forever()来分别处理一个请求或多个请求
'''
#请求处理类
class Mysocket(socketserver.BaseRequestHandler):
#重写父类的handle()
def handle(self):
while True:
try:
self.data = self.request.recv().strip()
print(self.data.decode())
data = '收到消息'.encode()
self.request.send(data)
except ConnectionResetError as e:
print('error occured:',e)
break
if __name__ == '__main__':
#指定服务器ip
Host,Port = 'localhost',
server = socketserver.TCPServer((Host,Port),Mysocket)
server.serve_forever()
客户端socketserver_client.py
import socket '''
socketserver_client.py
客户端和socket编程的客户端样,用到socket
'''
client = socket.socket()
client.connect(('localhost',))
while True:
mes = input(">>:").strip()
if len(mes) == :
continue
client.send(mes.encode())
respose_data = client.recv()
print(respose_data.decode())
socketserver 入门练习的更多相关文章
- Unity连Photon服务器入门详解
Photon是目前比较好用的游戏服务器.目前网上对于Photon的服务器讲解比较少,最近也对Photon做了初步的了解,做一个极其详细的入门. 首先就是得下载Photon咯 https://www.p ...
- Python自动化 【第一篇】:Python简介和入门
Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范 ...
- java socket通讯(一) 入门示例
一.入门 要想学习socket通讯,首先得知道tcp/ip和udp连接,具体可参考浅谈TCP/IP 和 UDP的区别 二.示例 首先新建了一个java工程,包括两个部分,客户端SocketClient ...
- Python自动化运维之1、Python入门
Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...
- SuperSocket入门(三)-Telnet多服务实例和服务实例交互配置详解
在SuperSocket入门(二)中我们已经简单了解了通过配置App.config文件使用BootStrap启动SuperSocket服务.我们先来看一下上个案例中的基本配置文件示例: < ...
- day01 python入门之路
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- Java Socket NIO入门
Java Socket.SocketServer的读写.连接事件监听,都是阻塞式的.Java提供了另外一种非阻塞式读写.连接事件监听方式——NIO.本文简单的介绍一个NIO Socket入门例子,原理 ...
- 分布式消息系统Jafka入门指南
分布式消息系统Jafka入门指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.JafkaMQ简单介绍 JafkaMQ是一个分布式的公布/订阅消息系 ...
- python网络编程——SocketServer/Twisted/paramiko模块
在之前博客C/S架构的网络编程中,IO多路复用是将多个IO操作复用到1个服务端进程中进行处理,即无论有多少个客户端进行连接请求,服务端始终只有1个进程对客户端进行响应,这样的好处是节省了系统开销(se ...
随机推荐
- 遇到的一个Form表单自动提交问题解决办法
Form 表单中只有一个 input 元素时按回车会默认提交表单.有的时候我们希望按回车可以进行列表查询,但是查询后表单被自动提交了,然后刷新了整个页面.这个时候就需要对这个 Form 表单处理一下以 ...
- [CPP - STL] functor刨根问底儿
作为STL六大组件之一,在STL源代码及其应用中,很多地方使用了仿函数(functor),尤其在关联型容器(如set.map)以及algorithm(如find_if.count_if等)中.虽然已经 ...
- 信息发布员和频道管理员如何查看dedecms自定义表单内容
自定义表单的管理权限,超级管理员有,而频道管理员没有.在频道管理员的权限设置选项里,找不到自定义表单这一项.怎么办呢. 刚开始想修改权限设置选项,但觉得太麻烦.是否有偷懒取巧的办法? 在频道管理员的后 ...
- llala js弹出层 颜色渐变
网址:http://bbs.csdn.net/topics/370254842
- python 特殊方法之new
object.__new__(cls[, ...]) Called to create a new instance of class cls. __new__() is a static metho ...
- 「LOJ#10015」「一本通 1.2 练习 2」扩散(并查集
题目描述 一个点每过一个单位时间就会向 444 个方向扩散一个距离,如图所示:两个点 a .b 连通,记作 e(a,b),当且仅当 a .b的扩散区域有公共部分.连通块的定义是块内的任意两个点 u.v ...
- poj3070 求斐波那契数列第n项 ——矩阵快速幂
题目:http://poj.org/problem?id=3070 用矩阵快速幂加速递推. 代码如下: #include<iostream> #include<cstdio> ...
- 利用union判断系统的大小端
int checkCPUendian()//返回1,为小端:反之,为大端: { union { unsigned int a; unsigned char b; }c; c.a = 1; return ...
- 安装java之后,找不到tools.jar 和dt.jar
可能很多初学者和我一样,在初次接触java开发的过程中,急于看到最终的结果,匆匆在网上下载了jdk之后,点击安装,结果等安装完,开始配置classpath时,发现jdk/lib下面根本就没有 tool ...
- 1.6-1.7 定义agent 读取日志存入hdfs
一.定义agent,并运行 1.配置文件 #计划 ##收集hive的日志,存到hdfs /opt/cdh-5.3.6/hive-0.13.1-cdh5.3.6/logs/hive.log 命令:tai ...