第八 socketserver

一、说明socketserver

SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进 程” 专门负责处理当前客户端的所有请求。

二、socketserver 实例

服务器端:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import socketserver
class MyTcpHandler(socketserver.BaseRequestHandler):
    def handle(self):
        while True:
            print("New conn:",self.client_address)
            data = self.request.recv(1024)
            if not data:
                break
            print("client says:",data.decode())
            self.request.send(data)

if __name__ == "__main__":
    HOST,PORT = "127.0.0.1",57000
    server = socketserver.ThreadingTCPServer((HOST,PORT),MyTcpHandler)
    server.serve_forever()

客户端:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import socket
IpPort = (‘127.0.0.1‘,57000)

Fsk = socket.socket()
Fsk.connect(IpPort)

while True:
    Msg = input("client>>").strip()
    Fsk.sendall(bytes(Msg,"utf8"))
    ServerReplay = Fsk.recv(1024)
    print("Server",str(ServerReplay,‘utf8‘))

Fsk.close()

运行服务器端

C:\Users\AppData\Local\Programs\Python\Python36-32\python.exe D:/py_pro/s12/day08/LearnSocketserver.py
New conn: (‘127.0.0.1‘, 65418)
client says: hi
New conn: (‘127.0.0.1‘, 65418)
client says: hhh
New conn: (‘127.0.0.1‘, 65418)
New conn: (‘127.0.0.1‘, 65433)
client says: lakaka
New conn: (‘127.0.0.1‘, 65433)
client says: m
New conn: (‘127.0.0.1‘, 65418)

运行客户端:

C:\Users\AppData\Local\Programs\Python\Python36-32\python.exe D:/py_pro/s12/day08/SocketServerClient.py
client>>hi
Server hi
client>>hhhm
Server hhh
client>>m
Server m
client>>
时间: 2024-11-20 23:40:23

第八 socketserver的相关文章

Python 模块(八) socketserver 以及 线程、进程

目录 异常处理 socketserver 线程.进程 一.异常处理 try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常. 代码示例: while True: n1 = input('input a number: ') n2 = input('input a number: ') try: n1 = int(n1) n2 = int(n2) res = n1 + n2 p

第十章:Python の 网络编程进阶

本課主題 Python中的作用域补充 socketserver 源码 本周作业 Python中的作用域补充 Python世界里沒有块级作用域的:在 Java/C+ 世界里没法打印 name. # 在 Java/C+ 世界里没法打印 name # 但在 Python/ JavaScript 世界里可以打印 name >>> if 1 == 1: ... name = 'Janice' ... >>> print(name) Janice Python中无块级作用域(小知识

Python 网络编程socket大全 用途---用于客户端和服务器端之间相互通讯

本章目录 一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 八.socketserver实现并发通讯 **引入:为什么一定要先学习网络协议?** 之所以学习网络编程就是为了让我们的程序能够利用网络来传输数据,开发出C/S构架的应用程序 而网络的核心,就是协议,没有协议就没有互联网,我们要开发出C/S结构程序则必须遵循这些协议的标准! `就

socket 补充

一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 八.socketserver实现并发通讯 引入:为什么一定要先学习网络协议? 之所以学习网络编程就是为了让我们的程序能够利用网络来传输数据,开发出C/S构架的应用程序 而网络的核心,就是协议,没有协议就没有互联网,我们要开发出C/S结构程序则必须遵循这些协议的标准! 就像上帝说可以帮你完成

26.python网络编程

一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好. 但是如果这两个程序之间想要传递一个数据,你要怎么做呢? 这个问题以你现在的知识就可以解决了,我们可以创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了. 但是当你的a.py和b.py分别在不同电脑上的时候,你要怎么办呢? 类似的机制有计算机网盘,qq等等.我们可以在我们的电脑上和别人聊天,可以在自

八. 网络编程( socketserver 模块 初级使用)

一 .socketserver 模块初级使用 ThreadingTCPServer ocketserver是标准库中的一个高级模块 socketserver可以简化创建客户端跟创建服务端的代码 socketserver 可以用于 TCP 协议 应用场景 应为tcp是一个长连接 只能保持一个人通话 但是socketserver就解决了同时多个客户端来 通话 初始化控制器类Handler[Handler是一个继承BaseRequestHandler的类Handler中的handle方法决定了每一个连

谭八爷代理订货平台系统

谭八爷代理订货平台系统  135.3879.3268   谭八爷微商下单系统.谭八爷微商管理系统.谭八爷代理商下单系统等.模式系统开发 传统行业和内容提供本质没有变,但是在结合互联网后的商业模式和运营模式变了,如当前我们谈的多的O2O,核心不是内容提供变化了,是商业模式变化了,这个商业模式变化本身又依托了一个重要假设,即解决了传统行业原有的信息不对称问题. 谭八爷微商平台系统开发的注册流程是非常简单的--扫码注册.同时后台的功能也很强大,代理们收到顾客订单后可以直接在后台向公司下单,同时后台也会

PHP连接MySQL的八个步骤【实操】

我们为大家将数据库连接整理成了最重要的8个步骤,我戏称它为:"数据库连接天龙八步". 这八个步骤如下,并且将每一步使用的函数都做了说明: 第一步:  连接数据库服务器 类型 说明 函数 mysqli_connect 功能 连接到mysql数据库服务器 参数1 主机 参数2 数据库服务器登陆名 参数3 密码 参数4 数据库的名称 参数5 数据库服务器端口不填默认3306 若参数4,数据库名称在此步已填并择,不需要执行第三步. 第二步:  判断错误 类型 说明 函数 mysqli_errn

八幅漫画理解使用 JSON Web Token 设计单点登录系统

原文出处: John Wu 上次在<JSON Web Token – 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. 如果还没有阅读<JSON Web Token – 在Web应用间安全地传递信息>,我强烈建议你花十分钟阅读它,理解JWT的生成过程和原理. 用户认证八步走 所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时