你可能想要类似的东西select.select()。你提供select()了三个套接字列表:要监视的可读性,可写性和错误状态的套接字。当新客户端在等待时,服务器套接字将可读。

该select()功能将阻塞,直到其中一个套接字状态发生变化。timeout如果你不想永远阻止,你可以指定一个可选的第四个参数:import select

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

server_socket.bind(('', 8888))

server_socket.listen(5)

print "Listening on port 8888"

read_list = [server_socket]

while True:

readable, writable, errored = select.select(read_list, [], [])

for s in readable:

if s is server_socket:

client_socket, address = server_socket.accept()

read_list.append(client_socket)

print "Connection from", address

else:

data = s.recv(1024)

if data:

s.send(data)

else:

s.close()

read_list.remove(s)

Python同时使用epoll,poll以及kqueue用于支持它们的平台上实现。它们是更高效的版本select。

python3socket非阻塞_Python的socket.accept非阻塞吗?相关推荐

  1. python socket server accpet 时间_Python socket.accept非阻塞?

    你可能想要像select.select()(见 documentation).您提供select()和三个套接字列表:要监视的可用性,可写性和错误状态的套接字.当新客户端等待时,服务器套接字将可读. ...

  2. pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端

    本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器soc ...

  3. python复制文件夹不阻塞_Python线程,线程不阻塞

    我有一个Python程序,当我使用Ctrl-c退出应用程序时,脚本不会关闭.我的进程仍然显示在运行进程中.#!/usr/bin/env python import socket import thre ...

  4. python使用rabbitmq阻塞_python – Celery/RabbitMQ unacked消息阻塞队列?

    我已经调用了一个任务,用urllib2远程获取一些信息几千次.这些任务是使用随机eta(一周内)安排的,因此它们都不会同时命中服务器.有时我会得到404,有时候不会.我正在处理错误,以防它发生. 在R ...

  5. python复制文件夹不阻塞_Python学习第54天(阻塞(blocking) IO和非阻塞(non-blocking)IO)...

    今天之所以这么早结束,主要是因为自己脑子不够用了,发现最近的定义有点多,完全搞不清楚了,打算早点睡觉,今天的内容估计要引用很多别人的部分了. 看到题目的四个东东是不是惊呆了,我也是惊呆了,同时脑子还跟 ...

  6. 深入理解阻塞socket和非阻塞socket

    什么是阻塞socket,什么是非阻塞socket.对于这个问题,我们要先弄清什么是阻塞/非阻塞.阻塞与非阻塞是对一个文件描述符指定的文件或设备的两种工作方式. 阻塞的意思是指,当试图对该文件描述符进行 ...

  7. [Python]再学 socket 之非阻塞 Server

    再学 socket 之非阻塞 Server 本文是基于 python2.7 实现,运行于 Mac 系统下 本篇文章是上一篇初探 socket 的续集, 上一篇文章介绍了:如何建立起一个基本的 sock ...

  8. socket编程 —— 非阻塞socket (转)---例子已上传至文件中

    在上一篇文章 <socket编程--一个简单的例子> http://blog.csdn.net/wind19/archive/2011/01/21/6156339.aspx 中写了一个简单 ...

  9. accept的阻塞与非阻塞

    C网络编程:Server处理多个Client(多进程server方法 和 non-blocking与select结合) 参看基于TCP/UDP的socket代码,同一时间Server只能处理一个Cli ...

最新文章

  1. CentOS Git服务安装
  2. 学习之路三十一:Varchar和NVarchar的理解
  3. JDBF读取DBF文件
  4. 10大负面测试用例 -转
  5. 写文章最难写的是标题
  6. kakfa怎么看消息是否堆积_纯种哈士奇多少钱一只,怎么看是否是纯种哈士奇
  7. 中国娱乐社交企业出海发展专题报告
  8. 开关管三极管和MOS管的选择
  9. 【Docker 入门】Docker简介与安装
  10. MySQL——优化ORDER BY语句
  11. [BZOJ5329] [SDOI2018] 战略游戏
  12. ASP.NET Web API 2基于令牌的身份验证
  13. Scrapy学习篇(十)之下载器中间件(Downloader Middleware)
  14. 关于python项目路径导入自己写的库出错的一点思考
  15. JAVA集合容器源码解析
  16. 学术论文海报模板_论文深耕 | 第一次写学术论文无从下手?阅读写作套路来了!...
  17. java仓库管理设计报告_基于javaweb的仓库管理系统的设计和实现 毕业论文
  18. 在VM6.5中安装iPC_OSx86_10_5_6_Universal_PPF5_Final
  19. Shell脚本 | 考勤统计
  20. 通信技术对自动驾驶发展的关键作用

热门文章

  1. android command line tools 下载,Mac 安装 Android commandlinetools 各种报错的问题
  2. mysql数据库 主主的搭建
  3. java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
  4. ReactNative绑定函数中的this
  5. ListView gridivew.setOnItemClickListener无效
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的记账本管理系统
  7. 计算机网络DNS域名配置,如何设置计算机的IP地址和DNS域名服务器
  8. 每日一算法 ---- 冒泡排序
  9. 判断字符串最后两个字符
  10. 【LeetCode】7. Reverse Integer