阿里云服务器网络编程Socket报错bind:cannot assgin requested address的解决方法

最近在用之前活动买的阿里云服务器搞点玩具项目,先从游双大佬的《Linux高性能服务器编程》搞起,兴冲冲的码了一通书上的代码,一运行就报错:

很奇怪啊,明明设置好了安全组,怎么会无法绑定呢?

最后经过一波冲浪,发现这是阿里云的锅,它的网卡地址是内网地址,它自己会把内网地址与外网相互转换,所以说你要搞网络编程的话,ip地址得填服务器私网ip

公网ip和私网ip可以在阿里云实例列表里查看

总结一下:

用阿里云进行socket编程一定要注意:

服务器端ip地址记得写私网ip,客户端访问时填公网ip。

安全组记得要开,端口号要授权,防火墙开。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
"bind: Cannot assign requested address" 这个错误通常出现在网络编程中,意味着您尝试将套接字绑定到一个无效的或不可用的地址上。以下是一些可能的解决方案: 1. 检查IP地址和端口号:确保您使用的是正确的IP地址和端口号。IP地址应该是有效的、可用的,并且与您的网络环境相匹配。端口号应该是未被其他进程占用的。 2. 避免使用特殊地址和端口:某些特殊的IP地址和端口号(例如0.0.0.0、127.0.0.1、保留端口等)可能无法直接绑定。尝试使用其他可用地址和端口。 3. 确保权限:在某些情况下,绑定到低于1024的端口可能需要特殊的权限。如果您尝试绑定低端口而不具备足够的权限,可能会出现"Cannot assign requested address"错误。尝试使用高于1024的端口进行绑定。 4. 检查网络配置:检查您的网络配置,确保网络接口是活动状态,并且与您尝试绑定的地址是相关联的。 5. 检查防火墙设置:防火墙设置可能会阻止您绑定到特定的地址和端口。请检查防火墙配置,确保允许相应的网络流量。 6. 等待一段时间:有时候,由于操作系统或其他进程的延迟释放,绑定到地址上可能需要一些时间。尝试稍后再次绑定,看是否问题解决。 如果以上方法都无法解决问题,可能需要进一步分析和调试您的代码和环境,以确定导致该错误的具体原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值