多进程服务器

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. 总结

  • 通过为每个客户端创建一个进程的方式,能够同时为多个客户端进行服务
  • 当客户端不是特别多的时候,这种方式还行,如果有几百上千个,就不可取了,因为每次创建进程等过程需要好较大的资源

并发服务器模型——多进程服务器相关推荐

  1. 并发服务器模型——多线程服务器

    多线程服务器 #coding=utf-8 from socket import * from threading import Thread from time import sleep# 处理客户端 ...

  2. 并发服务器模型——单进程服务器

    单进程服务器 1. 完成一个简单的TCP服务器 from socket import *serSocket = socket(AF_INET, SOCK_STREAM)# 重复使用绑定的信息 serS ...

  3. 几种并发服务器模型的实现:多线程,多进程,select,poll,epoll

    http://www.cnblogs.com/wj9012/p/3879605.html 客户端使用select模型: 1 #include <stdio.h> 2 #include &l ...

  4. 循环服务器,并发服务器模型以及I/O多路转接模型

    https://blog.csdn.net/xinianbuxiu/article/details/53455784 一.基于TCP/IP协议的基本循环服务器 tcp_server.c #includ ...

  5. 128-网络编程:TCP通信的并发(多进程实现并发服务器)

    3.TCP通信的并发(多进程实现并发服务器) 3.1 多进程实现并发服务器 要实现TCP通信服务器处理并发任务,使用多线程或者多进程来解决. 思路:1. 一个父进程,多个子进程2. 父进程负责等待并接 ...

  6. 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)...

    RT,使用消息队列,信号量和命名管道实现的多人群聊系统. 本学期Linux.unix网络编程的第三个作业. 先上实验要求: 实验三  多进程服务器 [实验目的] 1.熟练掌握进程的创建与终止方法: 2 ...

  7. 对PHP并发、多进程、多线程、异步处理、分布式系统的一些了解

    目录 并发 基本概念 PHP并发模型 多进程 基本概念 进程 多进程 并发多任务 任务调度 PHP实现多进程 PCNTL PHP-FPM Swoole 多线程 基本概念 线程 多线程 PHP实现多线程 ...

  8. node 多进程 vs java_node多进程服务器

    node提供了四种方法来创建子进程,分别是child_process.exec(),child_process.execFile(), child_process.fork(),child_proce ...

  9. python模拟app抢票_python并发编程多进程 模拟抢票实现过程

    抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt {"count": 1} 并发运行,效率高 ...

最新文章

  1. 如何在你的应用中使用Jasypt来保护你的数据库用户名和密码
  2. python企业级框架_Python六大开源框架对比:Web2py略胜一筹
  3. ArcGIS实验教程——实验三十五:ArcGIS Model Builder与空间建模原理、案例详解
  4. (71)FPGA模块调用(system Verilog调用VHDL)
  5. 计算机毕业设计中用Java 实现系统权限控制
  6. 一波黑科技即将袭来!StarVR带你感受他们的未来
  7. Go语言中的面向对象
  8. Mac OS X10.11下CocoaPods的安装过程
  9. Ansible Tower:安装以及HA多集群安装
  10. 大数据处理流程的主要环节
  11. 考研英语 常见不规则动词过去式/过去分词
  12. Godot简单的斜抛运动
  13. PPT技巧:快速实现照片双重曝光效果
  14. 微信企业号回调 php,PHP微信企业号回调模式的开启与用法实例分享
  15. 【解决方案】连锁店巡店难?开发成本高?TSINGSEE青犀视频打造一站式连锁店视频上云/安防监控/AI智能分析解决方案
  16. 车载网络信号的编码方式
  17. python与redis数据库交互中zadd、zincrby的那些坑:(error) ERR value is not a valid float
  18. 哪款蓝牙耳机适合吃鸡?盘点2022适合苹果吃鸡的蓝牙耳机
  19. matlab中imresize函数
  20. Hdu 5454,Minimum Cut,最近公共祖先+dfs遍历

热门文章

  1. 猫都能学会的Unity3D Shader入门指南(二)
  2. 磁盘性能分析一:IO负载高的判断详解
  3. String.Empty,NULL和的区别
  4. 我的城市,我的汽车:Autoblog 摄影大赛
  5. MySQL-schema-sync 一款非常好用的 MySQL数据库同步工具
  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 17 ElasticSearch解决大数据量检索难题
  7. Kubernetes搭建可扩展的微服务系统
  8. 各种云计算平台和云计算管理平台介绍
  9. BGP——本地优先级选路+BGP路由水平分割机制(讲解+配置命令)
  10. Spring框架声明式事务管理