并发服务器模型——多进程服务器
多进程服务器
1. 多进程服务器
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))breaknewSocket.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()
2. 总结
- 通过为每个客户端创建一个进程的方式,能够同时为多个客户端进行服务
- 当客户端不是特别多的时候,这种方式还行,如果有几百上千个,就不可取了,因为每次创建进程等过程需要好较大的资源
并发服务器模型——多进程服务器相关推荐
- 并发服务器模型——多线程服务器
多线程服务器 #coding=utf-8 from socket import * from threading import Thread from time import sleep# 处理客户端 ...
- 并发服务器模型——单进程服务器
单进程服务器 1. 完成一个简单的TCP服务器 from socket import *serSocket = socket(AF_INET, SOCK_STREAM)# 重复使用绑定的信息 serS ...
- 几种并发服务器模型的实现:多线程,多进程,select,poll,epoll
http://www.cnblogs.com/wj9012/p/3879605.html 客户端使用select模型: 1 #include <stdio.h> 2 #include &l ...
- 循环服务器,并发服务器模型以及I/O多路转接模型
https://blog.csdn.net/xinianbuxiu/article/details/53455784 一.基于TCP/IP协议的基本循环服务器 tcp_server.c #includ ...
- 128-网络编程:TCP通信的并发(多进程实现并发服务器)
3.TCP通信的并发(多进程实现并发服务器) 3.1 多进程实现并发服务器 要实现TCP通信服务器处理并发任务,使用多线程或者多进程来解决. 思路:1. 一个父进程,多个子进程2. 父进程负责等待并接 ...
- 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)...
RT,使用消息队列,信号量和命名管道实现的多人群聊系统. 本学期Linux.unix网络编程的第三个作业. 先上实验要求: 实验三 多进程服务器 [实验目的] 1.熟练掌握进程的创建与终止方法: 2 ...
- 对PHP并发、多进程、多线程、异步处理、分布式系统的一些了解
目录 并发 基本概念 PHP并发模型 多进程 基本概念 进程 多进程 并发多任务 任务调度 PHP实现多进程 PCNTL PHP-FPM Swoole 多线程 基本概念 线程 多线程 PHP实现多线程 ...
- node 多进程 vs java_node多进程服务器
node提供了四种方法来创建子进程,分别是child_process.exec(),child_process.execFile(), child_process.fork(),child_proce ...
- python模拟app抢票_python并发编程多进程 模拟抢票实现过程
抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高 ...
最新文章
- 如何在你的应用中使用Jasypt来保护你的数据库用户名和密码
- python企业级框架_Python六大开源框架对比:Web2py略胜一筹
- ArcGIS实验教程——实验三十五:ArcGIS Model Builder与空间建模原理、案例详解
- (71)FPGA模块调用(system Verilog调用VHDL)
- 计算机毕业设计中用Java 实现系统权限控制
- 一波黑科技即将袭来!StarVR带你感受他们的未来
- Go语言中的面向对象
- Mac OS X10.11下CocoaPods的安装过程
- Ansible Tower:安装以及HA多集群安装
- 大数据处理流程的主要环节
- 考研英语 常见不规则动词过去式/过去分词
- Godot简单的斜抛运动
- PPT技巧:快速实现照片双重曝光效果
- 微信企业号回调 php,PHP微信企业号回调模式的开启与用法实例分享
- 【解决方案】连锁店巡店难?开发成本高?TSINGSEE青犀视频打造一站式连锁店视频上云/安防监控/AI智能分析解决方案
- 车载网络信号的编码方式
- python与redis数据库交互中zadd、zincrby的那些坑:(error) ERR value is not a valid float
- 哪款蓝牙耳机适合吃鸡?盘点2022适合苹果吃鸡的蓝牙耳机
- matlab中imresize函数
- Hdu 5454,Minimum Cut,最近公共祖先+dfs遍历