栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python socket.accept非阻塞?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python socket.accept非阻塞?

您可能想要类似的东西

select.select()
(请参阅文档)。您提供
select()
了三个套接字列表:您要监视其可读性,可写性和错误状态的套接字。当新的客户端正在等待时,服务器套接字将是可读的。

select()
功能将一直阻塞,直到套接字状态之一改变为止。
timeout
如果您不想永远阻塞,可以指定第四个可选参数。

这是一个哑响应服务器示例:

import selectimport socketserver_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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号