背景:如何與託管在amazon ec2上的C++服務器通信?
我用C++編寫了一個使用winsock的小型聊天應用程序,只是爲了嘗試一些網絡編程。我製作了一臺服務器和一個客戶端,兩者都通過我的LAN完美通信,但不通過互聯網。所以,經過一番搜索之後,我遇到了NAT打孔的概念,並且知道它需要一個公共集合點服務器(即一個不在NAT後面的服務器)。
問題:
又過了些更搜索,我知道了亞馬遜EC2的,把他們的免費試用裝,創建運行Windows Server 2012 R2實例,跑到我的服務器應用程序在那裏。然後,我在我的機器上運行客戶端並嘗試連接到服務器。連接失敗,並顯示「連接超時」錯誤。
我觀察到我的Amazon實例已經分配了兩個IP地址,一個是公有的和一個是私有的,這意味着服務器在NAT後面。
問題:
我可以使連接工作,因爲我知道在公共和私有IP地址(但不是這將由NAT生成的端口號)?
此外,我使用錯誤的服務或做錯了什麼?
是否有一些替代服務可以給我一個公共集合點服務器並允許我的C++ Windows服務器運行?我知道許多應用程序(如WhatsApp)使用中間服務器來進行兩個客戶端之間的通信。我想要得到這樣的服務器。我有什麼選擇?
請幫助我。我搜查了很多,並沒有遇到任何可以解決我的問題的東西。
不要因爲公共IP而假設像NAT那樣的東西。這很可能是您的安全組阻止您訪問它。好的,謝謝。不要打開它太多了。 –