如何与amazonec2上托管的c++服务器进行通信

How to communicate with a c++ server hosted on amazon ec2?

本文关键字:服务器 c++ 通信 amazonec2      更新时间:2023-10-16

背景:

我用winsock在C++中制作了一个小型聊天应用程序,只是为了尝试一些网络编程。我做了一个服务器和一个客户端,两者都通过局域网进行了完美的通信,但没有通过互联网。因此,经过一番搜索,我发现了NAT打孔的概念,并知道它需要一个公共集合服务器(即不在NAT后面的服务器(。

问题:

然后,经过更多的搜索,我了解了亚马逊EC2,获得了他们的免费试用包,创建了一个运行Windows Server 2012 R2的实例,并在那里运行了我的服务器应用程序。然后,我在我的机器上运行客户端,并尝试连接到服务器。连接失败,出现"连接超时"错误。

我观察到,我的Amazon实例被分配了两个IP地址,一个是公共的,另一个是私有的,这意味着服务器位于NAT后面

问题:

如果我知道公共和私有IP地址(但不知道NAT生成的端口号(,我能让连接正常工作吗?

此外,我是否使用了错误的服务或做了错误的事情?

是否有其他服务可以为我提供一个公共集合服务器,并允许我的C++windows服务器运行?我知道许多应用程序(如WhatsApp(使用中间服务器在两个客户端之间进行通信。我想要一台这样的服务器。我有什么选择?

请帮帮我。我找了很多,找不到任何能解决我问题的东西。

如果您的聊天客户端通过TCP/IP进行通信,您可以使用亚马逊的公共IP与服务器进行通信。

默认情况下,虚拟服务器的安全性被严格锁定。使用亚马逊工具集打开您通信的端口。为了提高安全性,请仅将其打开到您的IP地址。