python socket编程在阿里云的esc服务器下 [Errno 99] Cannot assign requested address解决方式

初识python socket网络编程,在阿里云的esc里面实际测试的时候,发现报了这个错误

 [Errno 99] Cannot assign requested address

那么就是愉快的排错过程:

查了查网上的方案:

#修改/etc/hosts文件   
vim /etc/hosts

将如下内容修改
127.0.0.1 localhost
修改为
127.0.1.1 your hostname  #此处的填hostname,记住必须与/etc/hostname中的名字一致!

然后,愉快的报错了

接下来修改/etc/hosts的对应关系如下

39.106.105.70    Ubuntu   #39.106.105.70是我的阿里云ESC服务器的外网

然后就OK了,想啥呢,又报错了,再次尝试如下解决方案(假装看不见报错)

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

查了ESC的网卡信息,发现这样一个问题,127.0.0.1对应本地,而ifconfig后显示他的内网IP是17开头,

在它的生产环境中,必定存在内网ip和外网对应关系(虽然不知道怎么对应)

接下来就好办了,再次修改对应关系

内网IP    Ubuntu   #Ubuntu是我的主机名,你的用hostname查看

补充: 代码绑定的IP也必须是内网IP

 

再次运行,问题解决

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值