Python:线程池HTTP服务端

【信息收集】服务端口收集 一、服务端口介绍 在渗透测试中对服务端口的收集非常重要,通过扫描服务开放的端口可判断对应开启的服务,通过所提供的这些服务的已知漏洞就可进行攻击。知名端口(0-1023)固定分配给某些服务的,动态端口(1023-65535)不固定分配给某些服务。 常见端口: 21:ftp文件传输协议(匿名访问、弱密码等) 22:ssh专门为远程登录会话和其他网络服务提供的安全性协议,基本出现在liunx服务器、网络设备上(弱口令、防火墙ssh后门等) 23:telnet远程管理服务(弱口令探测、溢出等) 25:s 阅读详情

一个HTTP服务端,较为原始简单,处理效率不算高,使用了一个三方模块:threadpool

我已经把注释去掉,如果需要注释我可以把注释版放上来

import socket,threadpool,re
def open_file(路径):
    """ 读取文件 """
    try:
        client_html_data=open(路径,'rb')
    except :
        return '404 页面不存在\r\n您输入的地址有误,请重新输入'.encode('gbk')
    else:
        html_read_data=client_html_data.read()
        print(html_read_data)
        client_html_data.close()
        return html_read_data
def client(new_client_socket):
    ''' 负责服务客户端 '''
    print('正在等待浏览器发送信息')
    recv_data=new_client_socket.recv(10240).decode('utf-8')
    print(recv_data)
    ret_filename_=re.search(r'\w+\.html',recv_data)
    if ret_filename_:
        client_html_filename=ret_filename_.group()
        print(client_html_filename)
        file_data=open_file('python_demo/HTTP协议/'+client_html_filename)
    else:
        file_data=open_file('python_demo/HTTP协议/index.html')
    return_web= 'HTTP/1.1 200 OK\r\n\r\n'
    new_client_socket.send( return_web.encode('utf-8'))
    new_client_socket.send( file_data)
    new_client_socket.close()
    print('客户端链接已断开')
    print('---------------正在等待新的客户端链接---------------')


def main():
    ''' 负责监听客户端链接 '''
    print('-------------------服务端已运行-------------------')
    while True:
        print('正在等待客户端链接')
        new_client_socket,clientAddr=tcp_socket_sever.accept()
        print('链接成功,客户端ip与端口:',clientAddr)
        requests = threadpool.makeRequests(client,(new_client_socket,))
        for req in requests:
            tpo.putRequest(req)


def input_ip_port():
    ip_=input('请输入服务端使用的ip地址')
    port=int(input('请输入服务端要使用的端口号'))
    tcp_socket_sever.bind((ip_,8001))
    tcp_socket_sever.listen(128)


if __name__ == '__main__':
    tcp_socket_sever=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    tpo = threadpool.ThreadPool(2)
    input_ip_port()
    main()
    tpo.wait()

 

HTTP请求超时:从现象到根源的深度排查指南 本文深入探讨HTTP请求超时的全链路排查方法,从客户端到服务端的各个环节分析超时原因,提供实用的排查工具和命令,帮助开发者快速定位和解决网络请求卡顿问题。文章涵盖DNS解析、TCP连接、CDN回源等关键环节,并给出超时设置的最佳实践和弹性设计建议。 阅读详情

相关推荐

Python TCP Socket编程实战:从零构建多线程服务端与客户端

网络编程是构建分布式系统和微服务架构的基础,其核心在于理解不同网络协议的特性和应用场景。TCP协议作为面向连接的可靠传输协议,通过三次握手建立连接、数据包确认与重传机制,确保了数据传输的完整性和顺序性,为客户端-服务器模型提供了稳定通信基础。在工程实践中,直接使用TCP Socket进行编程,能够深入理解网络通信的底层原理,掌握端口绑定、数据编解码、并发处理等关键技术。针对常见的网络错误,如“Connection refused”和“Address already in use”,需要从服务端监听状态、端口

weixin_29574585的博客 333

使用Python进行高效的多线程HTTP请求

在处理网络请求时,尤其是当需要大量请求相同或不同的URL时,采用多线程的方式可以显著提高效率。本文介绍了如何使用Python的模块实现多线程HTTP请求。

一勺菠萝丶的博客 1536

python进程池实现的多进程文件夹copy器完整示例

本文实例讲述了python进程池实现的多进程文件夹copy器。分享给大家供大家参考,具体如下: 应用:文件夹copy器(多进程版) import multiprocessing import os import time import random def copy_file(queue, file_name,source_folder_name, dest_folder_name): copy文件到指定的路径 f_read = open(source_folder_name + / + file_name, rb) f_write = open(dest_f

Python项目实战│ Python实现线程池工作模式

本文基于Socket通信方法,自定义数据交换协议,围绕苹果树病虫害识别需求,迭代构建了客户机/服务器模式的智能桌面App。图像数据的发送采用base64编码方式,消息头、消息内容采用Json数据格式。服务器端采用一客户一线程和线程池技术支持并发访问,客户机采用基于PyQt5的图像化界面技术提高其可操作性。基于Socket技术的网络编程,在客户机与服务器两端提供了更多的设计灵活性。...

不断学习,不断进步,提高自己 2146

安装了anaconda,pycharm导入numpy时提示没有该包(模块)?

**问题详情:**我安装了anaconda,在利用Pycharm学习numpy这个库的时候,导入numpy这个包的时候提示我没有nummpy这个模块:No module named numpy.如下图所示。 应该说安装了Anaconda,里边就自带了numpy这个库,就应该能够使用。我一个新手怎么搞得懂呢?于是网上查了查找到了一个解决办法,说是我项目的解释器应该设置为Anaconda安装目录下的python.exe,而不应该是系统自带的:https://blog.youkuaiyun.com/aanndd77/art

qq_39820505的博客 1万+

cst-python联合仿真的问题解决

cst与python联合仿真出现无法调用CST的问题解决

ayihu_的博客 2375

python学习日志-线程池

Python 线程池学习 什么是线程池 一个线程的生命周期为开启,运行,销毁。其中,开启和销毁线程都需要消耗性能,花费时间。当进行多线程操作时,如果线程不被复用,每次创建线程都意味着要执行整个生命周期,系统开销也随之提高,性能也会下降。 因此使用线程池,将预先创建好的线程放进线程池中,同时处理完当前任务后不销毁,处理下一个任务。避免多次创建线程,带来不必要的系统开销。 实现原理 创建任务队列,开启多个线程,让每个线程监听队列任务并执行完通知拿下一个任务,直到队列中的任务被取空,然后退出线程。 应用实例

weixin_45214524的博客 1642

基于Zynq的便携式γ能谱仪设计与实现

数字多道分析器(DMCA)是核辐射能谱测量的核心设备,其本质是将探测器输出的模拟脉冲按幅度数字化分道,构建能量-计数分布曲线,从而支撑放射性核素识别与定量分析。其技术原理依赖高速采样、数字滤波成形、基线恢复与峰值提取等关键信号处理环节,具备高分辨率、优线性度与强抗干扰能力。在环境监测、核安全巡检与野外地质勘探等场景中,对低功耗、小型化、实时性提出严苛要求。本方案采用Xilinx Zynq-7020异构SoC架构,融合FPGA实时数字信号处理与ARM嵌入式控制,实现软硬协同优化,兼顾算法精度与工程落地性,为国

weixin_33173126的博客 192

基于python的简单HTTP服务器实现(三)

HTTP服务器实现 线程池 python中的线程池 基于threadpool 基于futures 具体实现 Queue 线程池实现 HTTP服务器实现 在基于python的简单HTTP服务器实现(二)中,我们实现了支持session的服务器,实现了基本功能。当考虑服务器在接受多个请求时,如果对每一个请求都开辟一个线程,那么开销是非常巨大的,而且线程的数量无法控制,因此想...

新安浅滩的博客 3259

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

livox雷达斜装修改

指的是,使用外部的陀螺仪的话,雷达到外部陀螺仪的转换,而mid360的陀螺仪是内置在360里面的,且方向和点云方向是一致的,所以不能通过修改此处去改变陀螺仪方向。同时livox_ros_driver2中的MID360_config.json里面的。这里面的外参,只能改变点云相对陀螺仪的位姿,而不能将陀螺仪映射到你期望的倾斜角度。fast_lio中的mid360.yaml中的外参。

z1872385的博客 2714

Python 线程池原理及实现

概述 传统多线程方案会使用“即时创建, 即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程,销毁线程的状态。 一个线程的运行时间可以分为3部分:线程的启动时间、线程体的运行时间和线程的销毁时间。在多线程处理的情景中,如果线程不能被重用,就意味着每次创建都需要经过启动、销毁和运行3个...

码农富哥 2万+

FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地

FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。

PX4-SLAM-PNC 218

Requests 为什么速度越来越慢?

Python Requests库性能问题分析及优化方案 摘要:Requests库虽简单易用,但不当使用会导致性能显著下降。常见问题包括:未复用连接导致重复TCP/TLS握手、DNS解析延迟、同步阻塞模型效率低、大文件非流式处理、连接池耗尽等。优化建议: 连接复用:使用Session对象管理连接池,避免重复握手(首次请求后复用TCP/TLS连接) 并发处理:多线程或异步IO提升吞吐量(如ThreadPoolExecutor) 流式传输:分块处理大文件请求/响应,避免内存爆炸 环境调优:关闭不必要代理、升级依赖

weixin_41943766的博客 424

PDBfixer:蛋白质结构修复工具

本文介绍蛋白质数据银行(PDB)文件常见问题及修复工具PDBFixer的使用方法。PDB文件常存在缺失原子、残基等问题,PDBFixer可通过GUI、命令行或Python API实现自动化修复。文章详细说明安装方法、命令行参数、Python脚本修复流程及非标准残基替换表,并与Modeller、ColabFold和Rosetta Remodel等其他修复工具进行对比分析,提供了各工具的特点、适用场景和典型计算时间比较,帮助用户根据具体需求选择合适的修复工具。

Protein Designer的博客 613

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

预约系统版本2(pyhton+flask可视化版本)

一个支持多客户端同时在线的票务预约系统,客户端通过 TCP 长连接与服务端交互,服务端使用 epoll 监听 I/O 事件,并通过线程池把任务交给 worker 线程处理,worker 线程通过连接池借用 MySQL 连接执行 SQL。 整体架构 外部用户只需访问 ,Web 与 C++ 之间的 9999 端口仅本地可见,不对外暴露。 停止 三、改进建议 3.1 性能改进 3.1.1 连接池加条件变量(当前最大短板) 现状:Connect_Mysql_Server 借不到连接直接 ,构造失败 → 客户端

2501_90355051的博客 349

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python3进阶--Socket编程、多线程(创建方式、线程通信、线程锁、线程池)

Python3进阶--Socket编程、多线程(创建方式、线程通信、线程锁、线程池)

鸢尾_的博客 6651

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python 进程池与线程池

前边套接字通信服务端多任务并发,套接字通信是I/O密集型的任务,用多线程。主线程建连接,每建一个连接就起一个线程。 彼此任务不再影响。 但这种方式会有服务端无限开线程的问题。所以要限制并发的个数,使用pool的概念。 开线程池,池的大小设置:设为机器可以承受的范围。线程池是一种折中的方案,其实比不开池效率低,但保证了安全机器不会崩。线程池应用于问题规模大,要开许多线程,多到机器无法承受的...

sdau_clt的博客 270

Leon服务端性能调优:高并发场景下的优化策略

你是否在使用Leon时遇到过响应延迟、资源占用过高或并发请求处理能力不足的问题?随着用户量增长和交互复杂度提升,Leon服务端在高并发场景下面临着严峻的性能考验。本文将从架构分析、关键瓶颈识别、优化策略实施到监控体系构建,提供一套完整的性能调优方案,帮助你将Leon的并发处理能力提升300%,响应时间缩短至毫秒级。 读完本文,你将能够: - 深入理解Leon服务端架构及性能瓶颈 - 掌握多维度优...

gitblog_01116的博客 1084

Python异步扩缩容实战:asyncio、线程池与进程池协同优化

Python应用扩缩容本质是IO与CPU资源的协同调度问题。在高并发场景下,同步阻塞导致吞吐骤降、延迟飙升,而单纯依赖asyncio可能因GIL限制或驱动不兼容反成瓶颈。真正有效的方案需分层应对:IO密集型任务用asyncio事件循环实现轻量高并发;混合型任务通过concurrent.futures.ThreadPoolExecutor桥接阻塞调用;CPU密集型则必须借助multiprocessing绕过GIL。技术价值在于以最小硬件成本提升QPS数倍并压低延迟,广泛应用于电商秒杀、实时风控、WebSock

weixin_30682415的博客 336

Python实战:5分钟搞定gRPC服务端与客户端通信(附完整代码)

本文详细介绍了如何使用Python快速搭建gRPC服务端与客户端,实现高效通信。通过完整的代码示例和优化建议,帮助开发者在5分钟内掌握gRPC的核心技术,提升微服务架构下的通信效率。

h9j8k7l6m5n的博客 889

hpv4g多线程秒杀核心原理:300毫秒精准卡点+线程池并发的Python实现细节

hpv4g 是一款基于 Python 的九价 HPV 疫苗约苗秒杀工具(仅用于学习研究),核心思路是用 **300毫秒精准卡点 + 线程池并发** 抢在开抢瞬间发出请求。本文带你完整拆解它的秒杀原理、多线程调度细节和几个非常实用的工程设计。💉 ## 💡 hpv4g 是什么:一个麻雀虽小五脏俱全的秒杀器 hpv4g 的项目结构极其精简,只有三个核心文件,非常适合新手阅读: | 文件 | 职

gitblog_00486的博客 932

从「同步」到「异步」:用 aiohttp 把 Python 网络 I/O 榨到极致

本文探讨了Python中IO瓶颈问题及异步编程优势。通过对比同步请求、线程池和异步协程三种方案下载100张图片的性能表现,展示了aiohttp框架在并发处理上的高效性。同步方案耗时22秒,20线程池降至2.7秒,而异步方案仅需2.4秒且内存占用更低。文章详细解析了aiohttp客户端/服务端实现,包括连接控制、错误处理和流量限制等关键点,并对比了同步与异步的心智模型差异。最后给出实践建议:aiohttp适合高并发网络IO场景,但不适用于CPU密集型任务。异步编程的核心价值在于最大化利用CPU资源,将等待时间

Y234567890_的博客 1375

HTTP/1.1 与 Socket 长连接实战:Python 3.12 实现 1000 并发连接压力测试

本文深入探讨了HTTP/1.1持久连接与原生Socket长连接在Python 3.12中的实现与性能对比,通过1000并发连接压力测试展示两者的差异。文章详细解析了TCP和HTTP协议的核心概念,并提供了优化建议,帮助开发者在高并发场景下做出更优选择。

weixin_30896511的博客 810

python tornado多线程_Tornado实现多进程/多线程的HTTP服务详解

用tornado web服务的基本流程1.实现处理请求的Handler,该类继承自tornado.web.RequestHandler,实现用于处理请求的对应方法如:get、post等。返回内容用self.write方法输出。2.实例化一个Application。构造函数的参数是一个Handlers列表,通过正则表达式,将请求与Handler对应起来。通过dict将Handler需要的其他对象以参...

weixin_30072631的博客 774
上一篇: Python:Windows系统下在命令提示符使用pip命令出错的问题
下一篇: Python:epoll单线程实现HTTP服务端
include_ice
博客等级 码龄9年 307粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值