socket只能处理一个client连接,如果需要并发处理多个链接则需要使用socketserver,下面是代码示例以及注释
server端
import socketserver #之前的socket只能同时处理一个客户端,当需要并发处理client发送的信息是需要使用到socketserver,下面创建一个类,继承socketserver其对应实例就有并发能力 class My_Tcp_Handler(socketserver.BaseRequestHandler): #下面的handler是自己定义的server与client交互的过程,所有交互过程都在此方法内部实现.方法名handle是固定的 def handle(self): while True: try: #下面将收到的数据打印并且大写后发回给客户端 self.data = self.request.recv(1024) print(self.data.decode(encoding="utf-8")) self.send_data = self.data.decode(encoding="utf-8").upper().encode(encoding="utf-8") self.request.sendall(self.send_data) except ConnectionResetError as e: print("一个客户端关闭了连接") break #实例化socketserver My_server = socketserver.ThreadingTCPServer(("0.0.0.0", 8888), My_Tcp_Handler) #ThreadingTCPServer是使用多线程,ForkingTCPServer是使用多进程处理并发 #启动实例 My_server.serve_forever()
下面是client端
import socket client = socket.socket() client.connect(("127.0.0.1", 8888)) while True: msg = input() if len(msg) == 0: continue client.send(msg.encode(encoding="utf-8")) #如果发送中文需要对其进行encode,接收也需要decode;英文前面直接加b指定类型 client_rec = client.recv(1024).decode(encoding="utf-8") print("client_rec:", client_rec) client.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 我正在优化复杂模拟的参数。我使用多处理模块来增强优化算法的性能。我在http://pymotw.com/2/multiprocessing/basics.html上了解了多处理的基础知识。复杂的模拟根据优化算法中给定的参数持续不同的时间,大约1到5分钟。如果参数选择不正确,则模拟可能会持续30分钟或更长时间,结果将无用。因此,我正在考虑为多处理建立超时,该超时将终止所有持续超过定义时间
本文向大家介绍JavaScript处理解析JSON数据过程详解,包括了JavaScript处理解析JSON数据过程详解的使用技巧和注意事项,需要的朋友参考一下 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包
本文向大家介绍Spring Cloud Stream异常处理过程解析,包括了Spring Cloud Stream异常处理过程解析的使用技巧和注意事项,需要的朋友参考一下 应用处理 当消费者在处理接收到的消息时,有可能会由于某些原因而抛出异常。若希望对抛出来的异常进行处理的话,就需要采取一些异常处理手段,异常处理的方式可分为三种:应用层面的处理、系统层面的处理以及通过RetryTemplate进行
本文向大家介绍Pycharm连接gitlab实现过程图解,包括了Pycharm连接gitlab实现过程图解的使用技巧和注意事项,需要的朋友参考一下 一。从gitlab上clone代码到本地pycharm (一)。gitlab上找到创建项目的连接地址,分两种: 1. http连接方式: http://10.22.1.72/derekchen/cxg.git 2. ssh连接方式: git@10.22
本文向大家介绍Python 异常处理Ⅳ过程图解,包括了Python 异常处理Ⅳ过程图解的使用技巧和注意事项,需要的朋友参考一下 异常的参数 一个异常可以带上参数,可作为输出的异常信息参数。 你可以通过except语句来捕获异常的参数,如下所示: 变量接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收一个或者多个值。 元组通常包含错误字符串,错误数字,错误位置。 实例 以下为单个异常的实