基于TCP通过socketserver简单实现并发效果
一、首先介绍一下 socketserver 模块中的类:
| 类 | 描述 |
| BaseServer | 包含服务器的核心功能与混合(mix-in)类的钩子功能。这个类用于派生,不要直接生成这个类的类对象 |
| TCPServer/UDPServer | 基本的网络同步TCP\UDP服务器 |
| UnixStreamServer/UnixDatagramServer | 基本的基于文件同步TCP\UDP服务器 |
| ForkingTCPServer/ForkingUDPServer |
ForkingMixIn 和 TCPServer/UDPServer 的组合
|
| StreamRequestHandler/DatagramRequestHandler |
TCP/UDP 服务器的请求处理类的一个实现
|
| ThreadingTCPServer/ThreadingUDPServer |
ThreadingMixIn 和 TCPServer/UDPServer 的组合
|
|
BaseRequestHandler
|
包含处理服务请求的核心功能。只用于派生新的类,不要直接生成这个类的对象,可以考虑使用StreamRequestHandler或DatagramRequestHandler
|
# 服务端 # -*- coding: utf-8 -*-
import socketserver class MyTCPhandler(socketserver.BaseRequestHandler):
# handle 方法必须定义,因为在该继承的父类中已经定义了该接口
def handle(self):
while True:
try:
data = self.request.recv(1024)
if len(data) == 0: break
print('收到客户端消息:%s' % data)
self.request.send(data.upper())
except ConnectionResetError:
break
self.request.close() if __name__ == '__main__':
# socketserver在windows系统之上,不支持多进程
server = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), MyTCPhandler)
server.serve_forever() # 连接循环
# 客户端 from socket import * client = socket(AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1', 8080)) while True:
data = input('>>>:').strip()
if not data: continue
# client.send('hello'.encode('utf-8'))
client.send(data.encode('utf-8'))
get_data = client.recv(1024)
print(get_data.decode('utf-8'))
基于TCP通过socketserver简单实现并发效果的更多相关文章
- 基于Tcp协议的简单Socket通信实例(JAVA)
好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些网络编程的基础,这里就不提了,只记录最简单易懂实用的东西. ...
- JAVA基础知识之网络编程——-基于TCP通信的简单聊天室
下面将基于TCP协议用JAVA写一个非常简单的聊天室程序, 聊天室具有以下功能, 在服务器端,可以接受客户端注册(用户名),可以显示注册成功的账户 在客户端,可以注册一个账号,并用这个账号发送信息 发 ...
- 基于TCP协议的远程终端控制并发socketserver实现以及粘包问题处理
# 客户端 # -*- coding: utf-8 -*- import socketserver import struct import json import subprocess class ...
- 一个基于tcp的socket简单对话小例子
首先我们需要写连个py文件,一个server,一个client. import socket sk = socket.socket() # sk.bind(('ip',port)) sk.bind(( ...
- 验证客户端的链接合法性和socketserver模块实现并发
本节内容: 1.验证客户端的链接合法性 2.socketserver模块实现并发 一.验证客户端的链接合法性 首先,我们来探讨一下,什么叫验证合法性, 举个例子:有一天,我开了一个socket服务端, ...
- 基于socketserver实现的并发(tcp和udp)
threading 线程 基于tcp协议:请求建立连接,然后开启进程 基于udp协议:直接开启新进程 基于tcp协议 import socketserver # 导入socketserver模块 # ...
- 基于TCP的大文件发送、UDP、socketserver
基于TCP的大文件发送 #server服务端 import struct import json import os import socket server = socket.socket() # ...
- 模拟一个简单的基于tcp的远程关机程序(转)
最近在学习unix网络编程,现在正在学习tcp的通信.其实,只要建立起了tcp通信,操作远端的计算机就不是什么问题了.正向telnet一样,也是基于tcp/IP协议的.所以这个实验,也算是对telne ...
- 基于TCP协议套接字,服务端实现接收客户端的连接并发
基于TCP协议套接字,服务端实现接收客户端的连接并发 服务端 import socket from multiprocessing import Process server=socket.socke ...
随机推荐
- PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法
原创:https://blog.csdn.net/sdmanooo/article/details/14055077 今儿个重装了个系统,win7 64位.接着装了个64位的oracle11g,ora ...
- Mysql操作命令(基础)
创建数据库 CREATE DATABASE name; 显示所有数据库 SHOW DATABASES; 删除数据库 DROP DATABASE name; 选择数据库 USE DATABASENAME ...
- 理解 Node.js 的 GC 机制
<深入浅出Node.js>第五章<内存控制>阅读笔记 随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中.本文不讨论网页应用.命令行工具等短时间执行 ...
- Access to XMLHttpRequest at 'http://127.0.0.1:8000/XXXXX' from origin 'http://localhost
Django 报错,跨域请求出现问题. 在settings.py中添加 #设置可跨域范围 CORS_ALLOW_CREDENTIALS = True CORS_ORIGIN_ALLOW_ALL = T ...
- 20.Python略有小成(面向对象Ⅱ)
Python(面向对象Ⅱ) 一.类的空间问题 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,s ...
- Linux基础(06)IO复用
在Windows文件指的就是普通的肉眼可见的文件 , 而Linux一切皆文件 https://blog.csdn.net/nan_nan_nan_nan_nan/article/details/812 ...
- delphi xe6 JSON 测试
System.JSON ISuperJSOn mORMETJSON QJSON 测试 我在测试时发现系统自带的JSON 占用内存大一但多了就会出现内存泄漏的问题 我用的Flst< ...
- 配置安全web服务
为站点 http://system1.group8.example.com 配置TLS加密: 1.一个已签名证书从 http://server.group8.example.com/pub/tls/c ...
- CentOS7搭建jenkins
一.概述 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 安装环境 操作系统:centos ...
- Java单元测试 Http Server Mock框架选型
背景动机 某期优化需要针对通用的HttpClient封装组件--HttpExecutor在保证上层暴露API不动的前提做较多改动,大致包括以下几点: apache http client 版本升级 H ...