[译]Python - socket.error: Cannot assign requested address

Posted everfight的成长之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[译]Python - socket.error: Cannot assign requested address相关的知识,希望对你有一定的参考价值。

原文来源: https://stackoverflow.com/questions/48306528/python-socket-error-cannot-assign-requested-address

问:
我写了一个聊天服务器,但是我不能够将socket绑定到一个IP地址,具体代码如下:

import sys
import os
import socket

HOST = "194.118.168.131"
SOCKET_LIST = []
RECV_BUFFER = 4096 
PORT = 9009

def chat_server():

    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server_socket.bind((HOST, PORT))
    server_socket.listen(10)
...

我得到以下错误

Traceback (most recent call last):
  File "server.py", line 83, in <module>
    sys.exit(chat_server())
  File "server.py", line 20, in chat_server
    server_socket.bind((HOST, PORT))
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

我上面的代码有什么错误么?

答:

查看错误得知,errno 99 是 EADDRNOTAVAIL 帮助手册里面是这么说的:

EADDRNOTAVAIL 一个不存在的接口被请求了或者请求的地址不是本地的地址。
```
代码中提示是错误的IP地址。你可以尝试使用ifconfig看下本地的服务器是否有这个IP地址。

以上是关于[译]Python - socket.error: Cannot assign requested address的主要内容,如果未能解决你的问题,请参考以下文章

python socket.error: [Errno 10054] 解决方法

python绑定socket.error:[Errno 13]权限被拒绝

Python 处理 socket.error:[Errno 104] 连接由对等方重置

python发邮脚本运行每次都报socket.error: [Errno 110] Connection timed out ,用别人的机器也报

Python rpyc“socket.error:[Errno 113]没有到主机的路由”

socket.error:[errno 99] 无法在 python 中分配请求的地址和命名空间