python3 socket threading fork 多线程+多进程 简单实例
这是前两篇的地址,可以去看代码解释 https://blog.csdn.net/y363893017/article/details/105676878 https://blog.csdn.net/y363893017/article/details/105695328 首先上本机实测截图 如果对linux基础命令都不太熟悉的话,那就先学习基础命令吧,要不然你也不清楚我敲这几个简单的命令是为啥子 下面上服务端的代码 #! /usr/bin/env python3 # -*- coding:utf-8 -*- import socket import threading import pre Python3的Socket编程结合Threading和Fork技术可以创建高效的并发服务器,允许同时处理多个客户端请求。本实例展示了如何在Python3中实现一个多线程、多进程的文件服务器,允许用户上传文件。以下是对相关知识点的详细说明: 1. **Socket编程**: Socket是网络通信的基本组件,提供进程间通信的能力,使一台计算机上的程序能与另一台计算机上的程序进行通信。在Python中,`socket`库提供了创建和操作Socket对象的方法。 2. **多线程(Threading)**: 在Python中,使用`threading`模块可以创建和管理线程。线程允许程序在同一时间执行多个任务,提高了程序的并发性。在这个例子中,每个上传文件的请求都在一个新的线程中处理,确保服务器可以同时处理多个上传请求。 3. **多进程(Fork)**: `os.fork()`函数用于创建新的进程。在Unix/Linux系统中,它可以复制当前进程,形成父子进程关系。在服务器中,如果线程不足以处理大量并发请求,可以使用多进程来提高并发能力。然而,此示例并未直接使用`os.fork()`,而是主要使用了多线程。 4. **错误处理**: `pretty_errors`模块提供了一个友好的错误输出界面,使得错误信息更加易读。在开发阶段,这有助于快速定位问题。 5. **文件操作**: 文件操作在本例中至关重要,服务器需要接收并保存上传的文件。`open()`函数用于打开文件,`write()`方法写入数据,`close()`方法关闭文件。文件路径通过`os.path.join()`构建。 6. **数据传输格式**: 服务器接收文件名和大小的数据以JSON格式传输,利用`json`模块进行编码和解码。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 7. **TCP协议**: TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在这个例子中,服务器首先接收文件名和大小的长度,然后接收实际的数据,确保数据的完整性和顺序。 8. **日志记录**: 使用`logging`模块记录服务器活动,如文件上传信息,这有助于调试和监控服务器状态。`logging.basicConfig()`用于设置日志的基本配置,包括日志级别、格式和输出文件。 9. **信号处理**: 虽然在给出的代码片段中未直接展示,但`signal`模块可用于处理操作系统发送的信号,例如用于优雅地关闭服务器。 10. **时间操作**: `time.sleep()`函数用于暂停程序执行一段时间,可能用于避免过于频繁的操作导致的性能问题或资源占用过多。 总结来说,这个实例展示了如何在Python3中使用Socket、多线程以及日志等工具创建一个简单的文件服务器,能够接收并存储多个客户端上传的文件。通过多线程处理并发请求,提高了服务器的响应能力。注意,虽然示例没有使用多进程,但在实际应用中,根据负载情况,结合多线程和多进程可以进一步优化服务器性能。
- 粉丝: 6
- 资源: 958
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 白色大气风格的SEO搜索引擎优化网站模板.zip
- 白色大气风格的VPS销售网站模板.zip
- 白色大气风格的背包客自由旅行css3响应式模板.zip
- 白色大气风格的背景主题企业网站模板下载.zip
- 白色大气风格的别墅装修设计响应式网站模板下载.zip
- 白色大气风格的别墅设计案例HTML5企业网站模板.zip
- 白色大气风格的导航固定跟随网页模板下载.zip
- 白色大气风格的大阳能发电企业网站模板.zip
- 白色大气风格的创意建筑设计模板下载.zip
- 白色大气风格的电影上映影讯网站模板.zip
- 白色大气风格的电影下载网站模板下载.zip
- 白色大气风格的地图坐标网页模板下载.zip
- 基于两种坐标系的超螺旋滑模观测器的永磁同步电机pmsm无位置(速度)传感器控制模型 支持 dq旋转坐标系和静止坐标系建立smo 引入二阶滑模超螺旋算法替代一阶滑模 dq坐标系引入锁相环PLL估计转速及
- 白色大气风格的电子产品设计模板下载.zip
- BA56-12EWA.OLB
- 三微网优化matlab+yalmip 采用matlab+yalmip编程,实现三个微网的优化调度,分别包括微网内燃气轮机、燃料电池、储能等主体约束,还包括微网间互供以及和电网间购电约束,程序以成本最低
评论0