python 多线程 并发socket实例
sever side:
import socketserver
class MyTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
'''try内的代码就是要实现的功能,目前是实现小写转大写,可以自定义,
try是在客户端结束时不报错
'''
try:
while True:
self.data = self.request.recv(1024).strip()
print("{} wrote:".format(self.client_address[0]))
print(self.data)
self.request.sendall(self.data.upper())
except ConnectionResetError as e:
print(e)
if __name__ == "__main__":
HOST, PORT = "localhost", 6969
server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
client side:
import socket
sock = socket.socket()
#sock.connect(('120.78.197.182',51102))
sock.connect(('localhost',6969))
flag = False
while not flag:
data = input(">>:").strip()
if data == "b":flag = True
if len(data) == 0:continue
sock.send(data.encode())
recv_data = sock.recv(8096)
print("recv:",recv_data.decode()) # recv_data = b''
# recv_len = 0
# cmd_length = int(sock.recv(8096).decode())
# cli_ack = sock.send(b'ack')
# print('cmd_len',cmd_length)
# while recv_len != cmd_length:
# data = sock.recv(1024)
# recv_data += data
# recv_len += len(data)
# print('recv:',recv_data.decode())
sock.close()
python 多线程 并发socket实例的更多相关文章
- Python 多线程并发程序设计与分析
多线程并发程序设计与分析 by:授客 QQ:1033553122 1.技术难点分析与总结 难点1:线程运行时,运行顺序不固定 难点2:同一段代码,再不加锁的情况下,可能被多个线程同时执行,这会造成很多 ...
- 用Queue控制python多线程并发数量
python多线程如果不进行并发数量控制,在启动线程数量多到一定程度后,会造成线程无法启动的错误. 下面介绍用Queue控制多线程并发数量的方法(python3). # -*- coding: utf ...
- Python多线程并发的误区
由于项目要做一个并发测试,由于断言的东西较多,决定手写脚本.于是用python写了脚本: def test_method(thread_no): print("%s===test_metho ...
- python多线程知识-实用实例
python多线程使用场景:IO操作,不适合CPU密集操作型任务 1.多个线程内存共享 2.线程同时修改同一份数据需要加锁,mutex互斥锁 3.递归锁:多把锁,锁中有锁 4.python多线程, ...
- python 多线程并发threading & 任务队列Queue
https://docs.python.org/3.7/library/concurrency.htmlpython程序默认是单线程的,也就是说在前一句语句执行完之前后面的语句不能继续执行先感受一下线 ...
- python多线程并发
# coding=utf8 # 使用前需安装net-snmp-utils或net-snmp包 from _utils.patrol2 import run_cmd import sys import ...
- python 多进程并发接口测试实例
#encoding=utf-8 import requests import json import os import hashlib print "register------" ...
- python多线程爬取图片实例
今天试着把前面那个爬取图片的爬虫改成了多线程爬取,虽然最后可以爬取存储图片了,但仍存在一些问题.网址还是那个网址https://www.quanjing.com/category/1286521/1. ...
- Python Socket多线程并发
1.SocketServer模块编写的TCP服务器端代码 Socketserver原理图 服务端: import SocketServer #导入SocketServer,多线程并发由此类实现 cla ...
随机推荐
- Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置
Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot ...
- Bigining
今天,我的第一个软件工程项目团队组建成功,找到了自己的队友. 从现在开始就要分析和构思项目的具体内容.
- servlet简单介绍
什么是Servlet? servlet是一种Java编程语言类,用于扩展托管通过请求 - 响应编程模型访问的应用程序的服务器的功能.尽管servlet可以响应任何类型的请求,但它们通常用于扩展Web服 ...
- 2017 ACM-ICPC EC-Final ShangHai 东亚洲大陆-上海
比赛链接:传送门 Gym 101775A Chat Group(签到:待补) Gym 101775B Scapegoat(待补) Gym 101775C Traffic Light(贪心+思维) 思路 ...
- Hive错误:User root is not allowed to impersonate anonymous
修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项: <property> <name>hadoop.proxyuser.root.h ...
- C++学习(十九)(C语言部分)之 指针3
复习1.一级指针 int*p 指向int的指针 赋值 int x; p=&x;// *p=2; 指针指向的谁 解引用之后就是谁2.内存四区 堆区 需要自己手动申请内存 自己释放 (malloc ...
- 【HDOJ1018】【大数阶乘位数】【斯特林公式】
http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big Number Time Limit: 2000/1000 MS (Java/Others) ...
- 《DSP using MATLAB》Problem 5.36
第1小题 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- 《DSP using MATLAB》Problem 5.18
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...
- hdu4292 Food 最大流
You, a part-time dining service worker in your college’s dining hall, are now confused with a new pr ...