2015-10-04 171 views
0

背景:如何与托管在amazon ec2上的C++服务器通信?

我用C++编写了一个使用winsock的小型聊天应用程序,只是为了尝试一些网络编程。我制作了一台服务器和一个客户端,两者都通过我的LAN完美通信,但不通过互联网。所以,经过一番搜索之后,我遇到了NAT打孔的概念,并且知道它需要一个公共集合点服务器(即一个不在NAT后面的服务器)。

问题:

又过了些更搜索,我知道了亚马逊EC2的,把他们的免费试用装,创建运行Windows Server 2012 R2实例,跑到我的服务器应用程序在那里。然后,我在我的机器上运行客户端并尝试连接到服务器。连接失败,并显示“连接超时”错误。

我观察到我的Amazon实例已经分配了两个IP地址,一个是公有的和一个是私有的,这意味着服务器在NAT后面。

问题:

我可以使连接工作,因为我知道在公共和私有IP地址(但不是这将由NAT生成的端口号)?

此外,我使用错误的服务或做错了什么?

是否有一些替代服务可以给我一个公共集合点服务器并允许我的C++ Windows服务器运行?我知道许多应用程序(如WhatsApp)使用中间服务器来进行两个客户端之间的通信。我想要得到这样的服务器。我有什么选择?

请帮助我。我搜查了很多,并没有遇到任何可以解决我的问题的东西。

+0

不要因为公共IP而假设像NAT那样的东西。这很可能是您的安全组阻止您访问它。好的,谢谢。不要打开它太多了。 –

回答

1

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

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

+0

好的,谢谢。如果我有更多问题,我会试试这个,然后回来。 – Parth

相关问题