2015-10-04 136 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

相關問題