多进程监听多端口

# 多线程socket
# 程序监听两个端口,端口逻辑相同其中一个端口放在子进程下
# 每次请求会在产生一个进程处理请求
import SocketServer
from multiprocessing import Process class MyServer(SocketServer.BaseRequestHandler):
def handle(self):
conn=self.request
conn.sendall('hello')
while True:
data=str(conn.recv(1024))
conn.sendall('server:'+data) if __name__ == '__main__':
server1=SocketServer.ForkingTCPServer(('127.0.0.1',8000),MyServer)
server1.max_children=2 server2 = SocketServer.ForkingTCPServer(('127.0.0.1', 9000), MyServer)
server2.max_children = 2
p=Process(target=server2.serve_forever,args=())
p.start() # server1需放在p.start后启动不然会阻塞进程,server2无法启动
server1.serve_forever() p.join() # print 'hah'

多线程把ForkingTCPServer换成ThreadingTCPServer去掉max_children配置即可

注:

坑! 若使用多线程,因为无法配置线程数,并发太高会导致服务器产生很多进程也许会达到服务器显示的单个用户最多进程数,从而导致异常(linux 默认普通用户限制1024)

client

import  socket
ip=('127.0.0.1',8000)
sk=socket.socket()
sk.connect(ip)
sk.settimeout(10)
while True:
data=sk.recv(1024)
print('receive: %s',data)
inp=raw_input('please input:')
sk.sendall(bytes(inp))
if inp == 'exit':
break sk.close()

最新文章

  1. 站内全文检索服务来了,Xungle提供免费全文检索服务
  2. 对于amqplib的使用心得
  3. python3-day4-python函数
  4. ssh(sturts2_spring_hibernate) 框架搭建之struts2
  5. POJ 2002 Squares
  6. cmd命令进行RSA 密钥加密操作
  7. 记一次高级java工程师职位的面试
  8. python学习第五天 List和tuple类型介绍及其List切片
  9. android调用系统自带的的浏览器搜索关键字
  10. Oracle11g R2学习系列 之一安装篇
  11. jQuery关于mouseover和mouseenter的区别
  12. 自学Python2.1-基本数据类型-字符串str(object)
  13. 存储库-MongoDB简单的操作
  14. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践
  15. typescript + echarts-for-react 制作渐变柱状图, 提示[ts] 类型“Graphic”上不存在属性“LinearGradient”
  16. .net core 2.x - docker(for windows)-linux配置及项目+SqlServer发布
  17. Spring Boot: remove jsessionid from url
  18. 【error】'isnan' was not declared in this scope
  19. Java从零开始学十(Arrays类对数组的常用方法)
  20. Linux学习---新建文件,查看文件,修改权限,删除

热门文章

  1. AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码
  2. 解决oracle用户锁定
  3. 今天打补丁出问题了,害得我组长被扣了1k奖金。
  4. javascript ES3小测试
  5. Python简要学习笔记
  6. Docker - 终端交互
  7. Excel 数据导入(OleDb)
  8. opencv探索之路(一):win10 X64+VS2015+opencv3.10安装教程
  9. JavaScript开发中几个常用知识点总结
  10. python通过http请求发送soap报文进行webservice接口调用