本地虚拟机与腾讯云服务器无法通过socket进行通信

学网络编程的时候,想尝试一下本地虚拟机向云服务器进行通信。修改客户端绑定了服务器的公网ip。此时分别运行,发现两边没反应,客户端报错connection refused。排查代码,无误。排查网络问题,虚拟机ping服务器的公网IP,成功ping通。

此时根据网上的资料,发现服务器终端使用ifconfig查到的是一个内网IP,结合IP出错的思路和网上的资料,成功解决问题。

解决方法:

        1、服务器绑定的IP为内网IP

servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
int dst;
inet_pton(AF_INET,"x.x.x.x",(void*)&dst); //x.x.x.x为内网IP
servaddr.sin_addr.s_addr = dst;

        2、客户端绑定公网IP

此时我重新编译运行,仍然不通,最后发现是云服务器并没有开放我测试时使用的端口。解决方法:打开腾讯云服务器->防火墙->添加规则->开放对应端口。

此时再次运行,成功进行通信

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值