Python - socket.error: 无法分配请求的地址

6

我写了一个聊天服务器,但是我无法将套接字绑定到一个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

我的代码有什么问题?


我在以下链接中没有找到答案:

Python中出现'Connection aborted.', error(99, 'Cannot assign requested address')错误
socket.error[Errno 99] Cannot assign requested address
bind: cannot assign requested address
无法分配请求的地址 - 可能的原因?

1个回答

9
通过检查errno.h,错误号99是EADDRNOTAVAIL。 man页面bind(2)说:

EADDRNOTAVAIL请求了不存在的接口或请求的地址不是本地地址。

通常是由于IP地址错误导致的。 您可以使用命令ifconfig 检查您的计算机是否具有此IP地址。

谢谢!现在一切都很好。 - user8513564
我尝试连接的机器IP地址错误? - KansaiRobot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接