2012-02-09 139 views
1

好,我是新来的服务器 - 客户端应用程序,我需要一些基本信息,所以请原谅我,如果我的问题不明确......如何远程服务器上启动Java套接字服务器

我想创建一个功能如下的聊天应用程序:

客户端A向服务器发送信息,服务器向客户端B发送相同的信息,反之亦然......将其视为一个简单的聊天程序。

所有的通信都是通过套接字完成的,所以我将有一个服务器套接字应用程序和一个客户端套接字应用程序......我希望我的客户端应用程序位于我的PC和服务器应用程序上,位于远程服务器上在一些免费托管网站上托管)。

我的问题是如何在该远程服务器上启动该服务器应用程序?

在此先感谢!

+0

这个问题有点令人困惑......如果您需要在远程计算机上启动应用程序,您可以使用'ssh'作为例子。 – Tudor 2012-02-09 18:38:51

+0

阅读Java文档中的ServerSocket类 – breezee 2012-02-09 18:40:47

回答

0

远程服务器可以手动启动。 (如果您无法访问远程服务器,或者您将服务器托管在某些第三方基础架构上,那么他们可能有办法做到这一点。)

要通过某些程序远程启动它,您再次需要远程机器上的服务器来侦听这种请求。

+0

我找到了具有Apache的托管提供程序?它会吗? – 2012-02-10 22:19:11

0

通常,您需要一个在您的托管服务提供商(如Web服务器或可能是inetd)中始终运行的应用程序来启动(或嵌入)您的应用程序。细节将取决于您的托管服务提供商提供的内容。

+0

您是否知道提供这种服务的免费托管计划?谢谢 – 2012-02-10 22:15:37

0

如果您使用普通套接字,您应该使用SSH登录寻找一些远程服务器。你可以在shell启动您的应用程序,然后,某事像:

java -jar yourapp.jar 

免费托管网站是相当靶向想举办自己的网站的客户。在我看来,这不是承载套接字应用程序的最佳选择。

对于开发目的,我会坚持本地机器的开始。在同一台机器上运行/测试服务器/客户机连接要容易得多,因为您不必在两台不同的机器上工作,复制代码等。

0

这个tutorial相对较短,但完全涵盖了Java网络的基础知识。简单的聊天是正确的。

1

如果你只是想制作一个聊天客户端,我不认为你需要一个中间服务器。只需连接使用的服务器和客户端套接字

服务器两台机器:

ServerSocketChannel serverSocket; 
serverSocket = ServerSocketChannel.open(); 
serverSocket.socket().bind() 
serverSocket.socket().accept() 

客户:

SocketChannel clientSocket = SocketChannel.open(); 
clientSocket.connect(); 

当然,你必须正确地使用bindconnect功能。阅读他们的API

+0

服务器套接字也需要接受()。 – 2012-02-09 18:51:38