2012-06-06 79 views
0

是否有可能在客户端的本地网络中的客户机上编写可以成为服务器的Java小程序?Java applet可以作为服务器吗?

更具体地说,我期望做的是通过网络隧道非网络流量。发送者将发送给小程序,小程序然后将接收到的数据转发回服务器。

这种事情可能吗?有什么限制可能会阻碍你的发展?

注:我知道applet可以连接回服务器,这不是问题。问题是applet是否可以监听本地客户端端口上的连接/数据。

回答

3

未签名的applet只能连接它们来自的主机。

一个签名的applet可以做任何你想要的连接,并且可以监听tcp-ip端口。

来源:http://docs.oracle.com/javase/tutorial/deployment/applet/security.html

+0

我不是在谈论呼出,我谈论的是在本地客户机上监听入站连接。将入站数据转发回小程序来自的服务器不是问题,因为这些都是通过HTTPS完成的。 – cdeszaq

+0

已签名的applet可以处理任何java应用程序可以执行的操作,包括侦听tcp-ip端口。 –

+0

使用未签名的applet,如果applet试图打开一个tcp-ip端口进行侦听,或者会引发异常,用户是否会被提示允许? – cdeszaq

0

一般情况下,它不能。

一个原因是applet往往在安全受限的环境中运行,这意味着它们被拒绝打开服务器套接字的能力。基本上你可以为applet指定一个特殊的安全策略,或者在一个特殊的无约束容器中运行它;但是为什么只要将应用程序的内容移植到标准的servlet中,或者甚至是独立的服务器上呢?

+0

只需在applet上签名即可。 –

+0

它不能是独立的或标准的servlet。它必须尽可能小,因为它需要在浏览器页面中加载。除此之外,如果它是一个已签名的applet,那么它可以在本地客户端打开一个端口并监听入站连接? – cdeszaq

+0

为什么通过别人的计算机传输信息非常重要?你可以通过你自己的电脑隧道!在计算机上部署servlet,或在计算机上运行独立程序。让它监听非Web端口,并将请求转发到Web端口。网络浏览器使糟糕的服务器。 –

1

服务器无法连接到任何地方。服务器打开服务器套接字并正在监听

在过去,只要我还记得服务器套接字在MSIE限制,在Netscape(你还记得这样的浏览器?)是允许的:)

我个人还没有被写小程序在过去的10年里,所以我不知道现在使用的浏览器会发生什么,但它很容易检查。只需编写最短的小程序,并将代码new ServerSocket(1234).accept();放入其init()start()方法中。如果没有异常被抛出,你可以编写作为服务器的小程序。否则你不能。

只需尝试使用所有可用的浏览器。 20分钟的工作,你完成了。祝你好运。我很乐意知道结果。

相关问题