如何通过实例学习Python的socketserver模块网络编程技巧?

2026-05-27 00:451阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计844个文字,预计阅读时间需要4分钟。

如何通过实例学习Python的socketserver模块网络编程技巧?

本文实例讲解了Python网络编程:socketserver的基本使用方法。分享给广大开发者参考,具体如下:

内容概述:+ socketserver介绍+ socketserver的使用+ socketserver的异步服务端+ 首发时间:2018-03

详细内容:+ socketserver介绍Python的socketserver模块提供了一种基于socket的网络服务端实现方式,可以简化网络服务的开发过程。

+ socketserver的使用

1.导入模块:import socketserver

如何通过实例学习Python的socketserver模块网络编程技巧?

2.创建继承自socketserver.BaseRequestHandler的类,重写handle方法

3.创建socketserver.TCPServer或socketserver.UDPServer实例,指定服务端地址和端口

4.启动服务:server.serve_forever()

+ socketserver的异步服务端

socketserver提供了异步服务端的支持,通过继承socketserver.ThreadingMixIn实现。这样可以提高服务端处理并发请求的能力。

+ 首发时间:2018-03本文首发于2018年3月,至今已帮助众多开发者学习和应用socketserver模块。

本文实例讲述了python网络编程:socketserver的基本使用方法。分享给大家供大家参考,具体如下:

本文内容:

  • socketserver的介绍
  • socketserver的使用
  • socketserver的异步服务端

首发时间:2018-03-21


也可以使用socketserver来创建socket


socketserver的介绍:

  • socketserver是标准库中的一个高级模块
  • socketserver可以简化创建客户端跟创建服务端的代码

socketserver的使用:

  • 首先导入模块:import socketserver
  • 初始化控制器类Handler
    • init():初始化控制设置,初始化连接套接字,地址,处理实例等信息
    • handle(): 定义了如何处理每一个连接。
    • setup(): 在handle()之前执行.一般用作设置默认之外的连接配置
    • finish():在handle()之后执行。
    • 变量:
      • self.request属性是套接字对象,所以使用self.request.xxxx调用套接字的函数
      • self.server包含调用处理程序的实例
      • self.client_address是客户端地址信息
  • 定义服务端类型:
    • TCPServer 支持ipv4的TCP协议的服务器。
      • server=socketserver.TCPServer((HOST,PORT),Handler)
    • UDPServer 支持ipv4的UDP协议的服务器。
      • server=socketserver.UDPServer((HOST,PORT),Handler)
  • 运行服务端
    • 持续循环运行:serve_forever(),即使一个连接报错了,但不会导致程序停止,而是会持续运行,与其他客户端通信
      • server.serve_forever()
    • 停止server_forever:shutdown()
      • server.shutdown()

服务端:

import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): try: while True: self.data=self.request.recv(1024) print("{} send:".format(self.client_address),self.data) if not self.data: print("connection lost") break self.request.sendall(self.data.upper()) except Exception as e: print(self.client_address,"连接断开") finally: self.request.close() def setup(self): print("before handle,连接建立:",self.client_address) def finish(self): print("finish run after handle") if __name__=="__main__": HOST,PORT = "localhost",9999 server=socketserver.TCPServer((HOST,PORT),MyTCPHandler) server.serve_forever()

客户端:

import socket client=socket.socket() client.connect(('localhost',9999)) while True: cmd=input("(quit退出)>>").strip() if len(cmd)==0: continue if cmd=="quit": break client.send(cmd.encode()) cmd_res=client.recv(1024) print(cmd_res.decode()) client.close()


socketserver的异步服务端:

多线程:ThreadingTCPServer

多进程:ForkingTCPServer(Unix)

多线程版:

import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): try: while True: self.data=self.request.recv(1024) print("{} send:".format(self.client_address),self.data) if not self.data: print("connection lost") break self.request.sendall(self.data.upper()) except Exception as e: print(self.client_address,"连接断开") finally: self.request.close() def setup(self): print("before handle,连接建立:",self.client_address) def finish(self): print("finish run after handle") HOST,PORT = "localhost",9999 server=socketserver.ThreadingTCPServer((HOST,PORT),MyTCPHandler)#多线程版 server.serve_forever()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

标签:基本

本文共计844个文字,预计阅读时间需要4分钟。

如何通过实例学习Python的socketserver模块网络编程技巧?

本文实例讲解了Python网络编程:socketserver的基本使用方法。分享给广大开发者参考,具体如下:

内容概述:+ socketserver介绍+ socketserver的使用+ socketserver的异步服务端+ 首发时间:2018-03

详细内容:+ socketserver介绍Python的socketserver模块提供了一种基于socket的网络服务端实现方式,可以简化网络服务的开发过程。

+ socketserver的使用

1.导入模块:import socketserver

如何通过实例学习Python的socketserver模块网络编程技巧?

2.创建继承自socketserver.BaseRequestHandler的类,重写handle方法

3.创建socketserver.TCPServer或socketserver.UDPServer实例,指定服务端地址和端口

4.启动服务:server.serve_forever()

+ socketserver的异步服务端

socketserver提供了异步服务端的支持,通过继承socketserver.ThreadingMixIn实现。这样可以提高服务端处理并发请求的能力。

+ 首发时间:2018-03本文首发于2018年3月,至今已帮助众多开发者学习和应用socketserver模块。

本文实例讲述了python网络编程:socketserver的基本使用方法。分享给大家供大家参考,具体如下:

本文内容:

  • socketserver的介绍
  • socketserver的使用
  • socketserver的异步服务端

首发时间:2018-03-21


也可以使用socketserver来创建socket


socketserver的介绍:

  • socketserver是标准库中的一个高级模块
  • socketserver可以简化创建客户端跟创建服务端的代码

socketserver的使用:

  • 首先导入模块:import socketserver
  • 初始化控制器类Handler
    • init():初始化控制设置,初始化连接套接字,地址,处理实例等信息
    • handle(): 定义了如何处理每一个连接。
    • setup(): 在handle()之前执行.一般用作设置默认之外的连接配置
    • finish():在handle()之后执行。
    • 变量:
      • self.request属性是套接字对象,所以使用self.request.xxxx调用套接字的函数
      • self.server包含调用处理程序的实例
      • self.client_address是客户端地址信息
  • 定义服务端类型:
    • TCPServer 支持ipv4的TCP协议的服务器。
      • server=socketserver.TCPServer((HOST,PORT),Handler)
    • UDPServer 支持ipv4的UDP协议的服务器。
      • server=socketserver.UDPServer((HOST,PORT),Handler)
  • 运行服务端
    • 持续循环运行:serve_forever(),即使一个连接报错了,但不会导致程序停止,而是会持续运行,与其他客户端通信
      • server.serve_forever()
    • 停止server_forever:shutdown()
      • server.shutdown()

服务端:

import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): try: while True: self.data=self.request.recv(1024) print("{} send:".format(self.client_address),self.data) if not self.data: print("connection lost") break self.request.sendall(self.data.upper()) except Exception as e: print(self.client_address,"连接断开") finally: self.request.close() def setup(self): print("before handle,连接建立:",self.client_address) def finish(self): print("finish run after handle") if __name__=="__main__": HOST,PORT = "localhost",9999 server=socketserver.TCPServer((HOST,PORT),MyTCPHandler) server.serve_forever()

客户端:

import socket client=socket.socket() client.connect(('localhost',9999)) while True: cmd=input("(quit退出)>>").strip() if len(cmd)==0: continue if cmd=="quit": break client.send(cmd.encode()) cmd_res=client.recv(1024) print(cmd_res.decode()) client.close()


socketserver的异步服务端:

多线程:ThreadingTCPServer

多进程:ForkingTCPServer(Unix)

多线程版:

import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): try: while True: self.data=self.request.recv(1024) print("{} send:".format(self.client_address),self.data) if not self.data: print("connection lost") break self.request.sendall(self.data.upper()) except Exception as e: print(self.client_address,"连接断开") finally: self.request.close() def setup(self): print("before handle,连接建立:",self.client_address) def finish(self): print("finish run after handle") HOST,PORT = "localhost",9999 server=socketserver.ThreadingTCPServer((HOST,PORT),MyTCPHandler)#多线程版 server.serve_forever()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

标签:基本