Python - socket.error:无法分配请求的地址 [英] Python - socket.error: Cannot assign requested address

查看:53
本文介绍了Python - socket.error:无法分配请求的地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写了一个聊天服务器,但我无法将套接字绑定到 IP 地址:

I have written a chat server but I cannot bind my socket to an IP address:

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

我的代码有什么问题?

我没有找到答案:

'连接中止.', error(99, '无法分配请求的地址') Python 中的错误,
socket.error[Errno 99] 无法分配请求的地址,
绑定:无法分配请求的地址
无法分配请求的地址 - 可能的原因?

推荐答案

通过检查 errno.h,errno 99 是 EADDRNOTAVAIL.手册页 bind(2) 说:

By checking errno.h, errno 99 is EADDRNOTAVAIL. The man page bind(2) says:

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

EADDRNOTAVAIL A nonexistent interface was requested or the requested address was not local.

这通常是由错误的 IP 地址引起的.你可以使用命令ifconfig 检查你的机器是否有这个 IP 地址.

It is often caused by a wrong IP address. You can use the command ifconfig to check whether your machine has this IP address.

这篇关于Python - socket.error:无法分配请求的地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆