这可能是一般性主题,但我在使用Rook软件包处理一些代码时遇到了这个问题。
最近的R版本包括一个http服务器。您可能在使用RGui检查帮助主题时看到了这一点。它打开一个带有IP /端口等的新浏览器
例如,如果我输入?粘贴,则会显示,
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进程需要检查?
Workstation正在运行 - Windows XP
如果您对上述内容有任何疑问,请与我们联系,
此致
答案 0 :(得分:1)
修正了它。诀窍是指定,
s <- Rhttpd$new()
s$start(listen="0.0.0.0",port="20000")
启动Rook过程时。指定0.0.0.0会使其监听所有接口,现在我可以使用外部IP访问它。非常感谢你的帮助!
答案 1 :(得分:0)
打开TCP端口时,可以选择本地IP地址。对于传入连接,通常将INADDR_ANY(-1)提供给bind(),这意味着在每个可用接口上打开端口。
但是,只需提供接口的IP地址,就可以在机器上的一个接口上打开一个端口(在本例中为127.0.0.1)。似乎R就是这样做的。
答案 2 :(得分:0)
我的猜测是,您的公司网络上可能有代理。您的浏览器可能已配置为使用该代理访问Internet。大多数浏览器会使用代理排除他们知道的本地地址(127.0.0.1
或localhost
),但可能不排除任何其他IP。
尝试在浏览器中停用代理(即使&#34;自动检测&#34;,完全关闭代理),看看您是否能够连接。
答案 3 :(得分:0)
请查看此帖:Deploy Rook Apps Using R
答案 4 :(得分:0)
我遇到了同样的问题。
如果您使用的是RStudio,这可能是RStudio中的一个错误。看看这个链接: https://support.rstudio.com/hc/communities/public/questions/202656007-Cryptic-error-on-starting-RStudio-daily-with-R-devel
使用最新版本的R更新到最新版本的RStudio可以解决问题。