首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GEvent WSGIServer中使用IPv6套接字

在GEvent WSGIServer中使用IPv6套接字
EN

Stack Overflow用户
提问于 2013-02-11 02:32:15
回答 1查看 610关注 0票数 0

我正在尝试将WSGIServer绑定到IPv6环回地址:

代码语言:javascript
复制
import socket
import gevent
from gevent.pywsgi import WSGIServer

addrs = socket.getaddrinfo('::1', 8000, socket.AF_INET6, 0, socket.SOL_TCP)
bind_spec = addrs[0][-1]

listener = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
listener.bind(bind_spec)

server = WSGIServer(
    listener,
    lambda a,b:'asd'
)

server.serve_forever()

但这只会让你

代码语言:javascript
复制
error: [Errno 22] Invalid argument

在……里面

代码语言:javascript
复制
File "/usr/local/lib/python2.7/dist-packages/gevent/server.py", line 122, in _do_accept
  client_socket, address = self.socket.accept()

我试过使用gevent monkeypatcher,但没有用。在创建套接字之后导入gevent也没有帮助。

我的系统上已启用IPv6。如果我将服务器结构替换为普通的accept(),套接字将成功绑定并接受连接。

代码语言:javascript
复制
listener.listen(5)
listener.accept()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 18:19:18

我太傻了..。GEvent不会在提供的套接字上调用listen(),因此我必须在创建服务器之前自己调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14801114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档