Python OSError: [Errno 99] Cannot assign requested address错误的解决

                    Python  OSError: [Errno 99] Cannot assign requested address错误的解决

tcpOrder_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 #强制允许端口复用
tcpOrder_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
locall_addr = ("", 7890)
# 绑定本地信息
tcpOrder_socket.bind(locall_addr)
#print(tcpOrder_socket)
tcpOrder_socket.connect((server_ip, int(server_port)))

在最后一行程序 与服务器连接时偶尔会出现  OSError: [Errno 99] Cannot assign requested address 的错误,目前还不知道是什么原因导致如此,以下介绍两种解决办法去避免这种错误:

方法一:python 命令行下运行  vi /etc/hosts

将127.0.1.1 那一行的名字改成你的(用 vi /etc/hostname 获取)

127.0.0.1 localhost

127.0.1.1 your hostname  #此处的填hostname,记住必须与/etc/hostname中的名字一致!

以上更改后退出vim 保存更改  如果提示文件为只读状态导致无法更改  那就先去获取超级管理员权限(sudo -s     输入自己的密码进入),然后再去进行以上操作即可

这种方法可以有效的防止OSError: [Errno 99] Cannot assign requested address错误的发生


方法二:睁一只眼闭一只眼

while True:
    try:# 抓取OSError: [Errno 99] Cannot assign requested address  异常
            tcpOrder_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            #强制允许端口复用
            tcpOrder_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
            locall_addr = ("", 7890)
            # 绑定本地信息
            tcpOrder_socket.bind(locall_addr)
            #print(tcpOrder_socket)
            tcpOrder_socket.connect((server_ip, int(server_port)))
            choice_num = input("请输入操作代码:")
    except Exception as link_fault:
                continue

使用异常捕获,既然是偶尔出现的错误,那就让程序多执行几次,就能顺利通过,但是如果是一直出现这种错误,不建议用这种方法,因为你会一直卡在这里出不去,进入死循环


以上就是关于OSError: [Errno 99] Cannot assign requested address错误的解决办法,有高见的同仁可以留言,或者联系 [email protected]



猜你喜欢

转载自blog.csdn.net/weixin_40612082/article/details/80032613