0

这可能是一个普遍的话题,但我在使用 Rook 包处理一些代码时遇到了这个问题。

最近的 R 版本包括一个 http 服务器。您可能在使用 RGui 检查帮助主题时看到了这一点。它会打开一个带有 IP/端口等的新浏览器。

例如,如果我输入 ?paste,就会出现,

http://127.0.0.1:31234/library/.../paste.html

但是如果我使用我的 IP,比如 192.168.1.2 代替 127.0.0.1,页面无法加载,我收到错误

    While trying to retrieve the URL:http://192....
    The following error was encountered:
    We can not connect to the server you have requested

我有其他具有 httpd 接口的应用程序,我可以使用 127.0.0.1 和 192.168.1.2 ... 等访问这些应用程序的 http 接口。所以,就系统/网络权限而言 - 我不认为那是这里的问题。

相反,有一些特定于 R httpd 进程的东西不允许使用域名等访问它?

以上是在公司网络中测试的。当我从我的家庭网络尝试相同的过程时,它运行良好。但是,由于我已经从公司 PC 访问了许多其他本地安装的应用程序的 http 接口,我认为可能需要检查 R 的 http 进程的特定内容?

工作站正在运行 - Windows XP

如果您对以上内容有任何想法,请告诉我,

问候,

  • 拉吉。
4

4 回答 4

1

解决它。诀窍是指定,

s <- Rhttpd$new()
s$start(listen="0.0.0.0",port="20000")

启动 Rook 进程时。指定 0.0.0.0 使其监听所有接口,现在我可以使用我的外部 IP 访问它。非常感谢您的帮助!

于 2012-04-05T14:54:10.940 回答
0

我的猜测是您的公司网络上可能有一个代理。您的浏览器可能已配置为使用该代理访问 Internet。大多数浏览器会排除他们知道的本地地址(127.0.0.1localhost)使用代理,但可能不会排除任何其他 IP。

尝试在浏览器中禁用代理(甚至是“自动检测”,完全关闭代理),看看您是否能够连接。

于 2012-04-05T14:24:30.913 回答
0

打开 TCP 端口时,可以选择本地 IP 地址。对于传入连接,通常将 INADDR_ANY (-1) 提供给 bind(),这意味着在每个可用接口上打开端口。

但是,很可能只在您机器上的一个接口(在本例中为 127.0.0.1)上打开一个端口,只需提供接口的 IP 地址即可。似乎R就是这样做的。

于 2012-04-05T03:35:34.183 回答
0

我有同样的问题。

如果您使用的是 RStudio,这可能是 RStudio 中的一个错误。查看此链接: https: //support.rstudio.com/hc/communities/public/questions/202656007-Cryptic-error-on-starting-RStudio-daily-with-R-devel

使用最新版本的 R 更新到最新版本的 RStudio 可以解决此问题。

于 2015-04-30T18:37:27.063 回答