簡體   English   中英

是否可以在線托管通過ServerSocket充當服務器的Java類?

[英]Can a Java class that acts as a server via ServerSocket be hosted online?

我已經做了一個非常簡單的命令聊天Java基礎應用程序。

盡管項目由一個充當服務器,另一個作為客戶端,該客戶端發送套接字並從服務器接收套接字。

但是Server不是Servlet或任何其他類型的服務器,它只是一個簡單的簡單Java類,可以通過ServerSocket充當服務器...

如果可以在線托管(最好是雲托管),我將如何知道供客戶端使用的新主機名??? 端口會更改為嗎???

服務器類

public class ServerDoor {
    public static void main(String args[]) throws IOException {
        final int portNumber = 81;
        ServerSocket serverSocket = new ServerSocket(portNumber);
        while (true) {...}
    }
}

客戶端

public static void main(String args[]) throws IOException {
    final String host = "localhost"; // the host name!
    final int portNumber = 81;
    System.out.println("Creating socket to '" + host + "' on port " + portNumber);

    while (true) {...}
}

您可以在Windows Azure或Amazon EC2或其他雲托管公司中托管服務器。 客戶端需要連接的主機名是服務器的IP地址或DNS名稱。 也許將您的客戶端更改為從命令行參數接受主機名和端口,而不是對本地主機進行硬編碼。

服務器綁定到的端口必須與客戶端連接到的端口相同。 考慮也為此使用命令行參數。

Java套接字教程也非常有用。

最簡單的入門方法是從雲托管公司創建VM 您可以使用SSH遠程訪問您的雲VM ,以便運行命令。 如果您不熟悉命令行應用程序,則應進行一些研究。 您將必須知道如何從命令行運行Java程序。

擁有虛擬機后,使用SCP或其他復制實用程序將Server Java jar或.class文件復制到雲虛擬機上。 然后,您可以從雲VM運行服務器程序。 確保您的雲VM允許來自您要使用的端口的連接。 您可以從托管虛擬機設置的雲中打開或關閉虛擬機的端口。

一旦服務器程序在雲VM中運行,就可以連接到VM的主機名和端口。 主機名將是您創建的VM實例的域名。 創建虛擬機時,您可能必須給它起一個唯一的名稱。 它也可能與您用於SSH進入計算機的名稱相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM