多线程服务器


#coding=utf-8
from socket import *
from threading import Thread
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 = Thread(target=dealWithClient, args=(newSocket,destAddr))client.start()#因为线程中共享这个套接字,如果关闭了会导致这个套接字不可用,#但是此时在线程中这个套接字可能还在收数据,因此不能关闭#newSocket.close() finally:serSocket.close()if __name__ == '__main__':main()

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

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

    多进程服务器 1. 多进程服务器 from socket import * from multiprocessing import * from time import sleep# 处理客户端的请求 ...

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

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

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

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

  4. qt多线程服务器_常见网络服务器并发模型

    点击蓝字 关注我们 近些年,随着互联网的大发展,高并发服务器技术也快速进步,从简单的循环服务器模型处理少量网络并发请求,演进到解决C10K,C10M问题的高并发服务器模型.本文主要以TCP为例,总结了 ...

  5. 回调函数 线程_从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2...

    根据 <0 基于socket和pthread实现多线程服务器模型>所述,server创建子线程的时候用的是以下代码: pconnsocke = (int *) malloc(sizeof( ...

  6. 基于事件的 NIO 多线程服务器--转载

    JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处 ...

  7. 基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程

    基于多进程服务器的优点: 1.由操作系统进行调度,运行比较稳定强壮 2.能够方便地通过操作系统进行监控和管理 例如对每个进程的内存变化状况,甚至某个进程处理什么web请求进行监控.同时可以通过给进程发 ...

  8. 基于事件的 NIO 多线程服务器

    2019独角兽企业重金招聘Python工程师标准>>> JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个 ...

  9. muduo网络库:09---多线程服务器之(单线程、多线程服务器的适用场合)

    本文内容衔接于前一篇文章(进程间通信只用TCP):https://blog.csdn.net/qq_41453285/article/details/104997453 一.服务器开发概述 " ...

最新文章

  1. linux unset命令,Linux unset命令
  2. 实战 | 多种方法实现以图搜图
  3. android h5输入框被键盘遮挡,APP调用H5开发页面,输入框被软键盘遮挡问题的解决方案...
  4. 初中计算机知识点 考题,初中信息技术考题规律及趋势_教师资格面试初中信息技术...
  5. 看看 JDK 8 给我们带来什么
  6. 一定要会的synchronized关键字的用法
  7. mysql 优化设计库_MySQL 数据库最优化设计原则
  8. Swift开发:NSLayoutConstraint纯代码实现自动布局-初级篇
  9. 如何基于阿里云搭建适合初创企业的轻量级架构?
  10. 阿里云上遇到: virtual memory exhausted: Cannot allocate memory
  11. 2019年Java Web学习笔记目录
  12. 持续集成部署Jenkins工作笔记0017---17.整合GitHub的持续集成环境要点说明
  13. android取消内存限制吗,Android 内存限制
  14. Java实现简易四则运算器
  15. SVN汉化失败的原因及解决方案(通过SVN官网下载SVN和相应的汉化包)
  16. 安装VMware时,出现 安装程序无法继续 Microsoft Runtime DLL 安装程序未能完成安装 您无权输入许可证密钥,请使用系统管理员账户重试 VMware15.5.x 安装问题处理
  17. abb机器人goto指令用法_abb机器人编程指令,机器人编程的程序指令
  18. 最新电影《D战》幕后真实案件:暗夜黑客组织被端
  19. 移动硬盘遇到无法访问,参数错误的处理方法
  20. iOS 相册备份功能实现

热门文章

  1. CentOS6.9安装Kafka
  2. Android动态布局
  3. 安恒发布态势感知通报预警中心——“先知”
  4. python学习之路-1 python简介及安装方法
  5. Android批量图片载入经典系列——使用LruCache、AsyncTask缓存并异步载入图片
  6. 关于CXF大文件的传输问题
  7. 机器学习算法一般步骤
  8. 黑马程序员--C语言基础之--sizeof()运算符的使用以及注意
  9. ibatis3获得总记录数,同时计算数据分页?
  10. 阿里云原生数据库POLARDB压力测试报告