157 python网络编程 - 多进程服务器
2023-09-11 14:15:43 时间
from socket import *
from multiprocessing import *
from time import sleep
# 处理客户端的请求并为其服务
def dealWithClient(newSocket,destAddr):
while True:
recvData = newSocket.recv(1024)
if len(recvData)>0:
print('recv[%s]:%s'%(str(destAddr), recvData))
else:
print('[%s]客户端已经关闭'%str(destAddr))
break
newSocket.close()
def main():
serSocket = socket(AF_INET, SOCK_STREAM)
serSocket.setsockopt(SOL_SOCKET, SO_REUSEADDR , 1)
localAddr = ('', 7788)
serSocket.bind(localAddr)
serSocket.listen(5)
try:
while True:
print('-----主进程,,等待新客户端的到来------')
newSocket,destAddr = serSocket.accept()
print('-----主进程,,接下来创建一个新的进程负责数据处理[%s]-----'%str(destAddr))
client = Process(target=dealWithClient, args=(newSocket,destAddr))
client.start()
#因为已经向子进程中copy了一份(引用),并且父进程中这个套接字也没有用处了
#所以关闭
newSocket.close()
finally:
#当为所有的客户端服务完之后再进行关闭,表示不再接收新的客户端的链接
serSocket.close()
if __name__ == '__main__':
main()
通过为每个客户端创建一个进程的方式,能够同时为多个客户端进行服务
当客户端不是特别多的时候,这种方式还行,如果有几百上千个,就不可取了,因为每次创建进程等过程需要好较大的资源
相关文章
- python爬虫知识点详解
- python安装python-lzf包,报错lzf_module.c:3:20: fatal error: Python.h: No such file or directory
- Python+NumPy绘制常见曲线的方法详解_python
- 如何用python连接Linux服务器
- python执行脚本加参数_命令行运行Python脚本时传入参数的三种方式详解以及argparse子命令subparsers()方法
- python - 如何使用 Docker 运行多个 Python 脚本和一个可执行文件?
- Python @property装饰器的用法,判断函数参数整形、字符串、取值范围
- Eclipse Kepler SR2 + Python 3.4 + JDK7+Pydev3.4 搭建 python 开发环境(MAC)
- 24岁非计算机专业工科妹子裸辞转行Python程序员,自学Python三个月,零基础如何系统学习python,从入门到精通?
- 小白如何搭建Python自带静态Web服务器?
- python中hasattr()函数用法详解
- 每天一个python小知识——如何在Python 3中转换数据类型
- 156 python网络编程 - 单进程服务器
- 如何用python连接Linux服务器
- Python网络编程中的服务器架构(负载均衡、单线程、多线程和同步、异步等)
- Python中python-nmap模块的使用
- 【Python】获取当前国内时间(适用于服务器部署在国外的)
- Python 数据存储--shelve模块
- python检查URL是否能正常访问
- 《Python密码学编程》——1.2 代码与加密法
- python学习之列表去重的几种方法
- 【Python分布式服务框架】python实现gRPC服务
- Appium探索—Mac OS Python版
- 【华为OD机试真题 java、python、c++、JsNode】服务中心选址、服务器最佳位置【2022 Q4 200分】
- Python 基础 之 python 进程知识点整理,实现一个简单使用进程池的多进程文件夹文件copy器
- 【爬虫系列】【Python】python with as的用法
- 科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码