2014-04-22 151 views
0

我正在嘗試編寫一個與服務器交互的android應用程序。我正在嘗試用套接字編寫服務器端。我創建了一個ec2實例並運行它。我用膩子連接到它並運行了一個簡單的「hello world」java程序。現在我試圖運行一個使用套接字的服務器,但是我將它作爲服務器套接字:ServerSocket [addr = 0.0.0.0/0.0.0.0,localport = 5667]。 這是我的代碼,很基本至今:如何在亞馬遜上運行服務器套接字EC2

public class EchoServer { 
public static void main(String[] args) throws IOException { 

    int portNumber = 5667; 

    System.out.println("server socket main"); 

    try (ServerSocket serverSocket = new ServerSocket(portNumber); 
      ) { 

     System.out.println(serverSocket.toString()); 
    } catch (IOException e) { 
     System.out 
       .println("Exception caught when trying to listen on port " 
         + portNumber + " or listening for a connection"); 
     System.out.println(e.getMessage()); 
    } 
} 
} 

我應該怎麼做來運行服務器,所以我可以通過我的Andriod設備連接到它?

謝謝!

回答

2

您正處在正確的軌道上。 0.0.0.0只是表示:

一種指定「任何IPv4接口」的方法。在配置服務器時(即綁定偵聽套接字時),以這種方式使用它。

接下來,您的服務器需要使用SocketServer.accept()監聽傳入連接。

然後當然你會想要在套接字上接收和發送數據。這tutorial應該有所幫助。

最後,如果你打算用你的服務器同時服務於多個客戶端,你將要考慮併發可擴展性,或許可以考慮使用一個框架像Netty

相關問題