如何解决如何将在AWS Linux上运行的C websocket服务器与本地虚拟机上的客户端链接?
我最近用C语言编写了我要参加的在线课程的echoserver / echoclient程序(操作系统研究生课程,here)。我可以借助(以及Beej的网络指南(here的修改)的帮助来完成它。我可以在Windows 10笔记本电脑上运行的Ubuntu 20.04虚拟机上很好地运行它。试图在AWS Linux实例和Ubuntu VM上的echoclient上运行echoserver,因为我的最终目标是构建一个具有中央服务器数据存储库的客户端程序。但是,我遇到了启动echoserver C代码的问题通过PuTTy的SSH-ing在AWS EC2实例上运行,然后我在Ubuntu VM上运行echoclient,但它无法连接(我在客户端收到的错误是它失败了connect
阶段套接字调用)。我尝试了以下步骤:
- 编辑EC2实例的安全配置的入站规则,以允许从在我的Ubuntu计算机上运行
curl ifconfig.me
时出现的IP地址进行“所有TCP”连接 - 将我的Ubuntu VM的网络设置从NAT更改为桥接网络
- 通过
telnet <AWS Public IP> <PortNo>
测试端口访问-导致“连接被拒绝”错误 - 按照these的说明操作,确保不会阻止我的出站端口
我浏览了AWS页面(here)以及多个开发人员/ SO线程(到目前为止我发现的最好的here),但似乎无法弄清楚。如果有人可以帮助我,我将非常感激。如果有帮助,我很乐意发布我的服务器和客户端代码。
解决方法
弄清楚了:我的服务器中缺少以下代码行。
hints.ai_flags = AI_PASSIVE;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。