【问题标题】:Applet unable to create socket connection on localhostApplet 无法在 localhost 上创建套接字连接
【发布时间】:2011-08-06 16:25:53
【问题描述】:

我有一个 java 小程序,一旦加载到用户机器上(通过网页),我希望它在正在查看它的本地机器上创建一个服务器套接字和套接字。这是不允许的吗?

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖 SSCCE。我怀疑虽然提供的 first (1) 2 个答案对他们来说有“一定的道理”,但他们都犯了一些错误。给我一些代码来玩,我会测试我的理论。 1) 汤姆的回答似乎是正确的。

标签: java security networking same-origin-policy


【解决方案1】:

Java 小程序可以打开Sockets 到它们的same-origin 主机。在大约十年的时间里,它们还可以打开ServerSockets(操作系统通常会将监听端口限制在 1024 以下)并仅接受来自 same-origin 主机的连接。另外crossdomain.xml 可能会放宽限制,从 6u10 开始。

注意 localhost:您的机器向外的 IP 地址与 127.0.0.1 不同,从file URL 加载的代码与 127.0.0.1 的网络连接不匹配(尽管有时空字符串可以是解释为 localhost;还请注意您的类路径可能指向的内容(例如 .)可能会优先于网络加载的代码加载,具体取决于您正在做什么但通常不通过浏览器)并且 JavaScript 仅具有同源权限仅在与下载代码的端口相同的端口上连接到同一主机。

【讨论】:

  • Hawtin 我也尝试使用我的外向 IP 地址(使用 whatismyipaddress.com 找到)但它没有用
【解决方案2】:

如果您对您的小程序进行数字签名,它显然可以“无限制”运行http://download.oracle.com/javase/tutorial/deployment/applet/security.html(与 java webstart 相同)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2021-04-08
    相关资源
    最近更新 更多