离线时无法建立与本地主机的连接
Posted
技术标签:
【中文标题】离线时无法建立与本地主机的连接【英文标题】:Can't establish connection to localhost when offline 【发布时间】:2018-02-06 04:23:28 【问题描述】:我通过NanoHttpd 或ServerSocket 在我的android 设备上构建了一个网络服务器,并从其自身连接到该服务器。设备在线时运行良好。但是当设备不在线时我无法收到请求。我尝试连接到localhost
或127.0.0.1
,但没有任何反应。设备离线时是否可以与localhost
建立连接?
谢谢
【问题讨论】:
and connect to this server from itself
???你这是什么意思?
对不起,我的英语不好。这意味着这个 http 服务器在我的设备上运行,我从这个设备发送请求。
谁在发送请求?如何?你用什么? NanoHttpd 还是 ServerSocket?
场景是在 Mapbox 上显示离线地图图块。我在 Mapbox 上添加了一个 RasterLayer,它会向服务器发送 Map Tile 的请求,我将 NanoHttpd 服务器构建为 Tile 服务器,并在 Mapbox 向其发送请求时将 Map Tile 作为图像返回。但是当关闭 wifi 时,请求不会发送到 NanoHttpd 服务器
如果请求没有发送到 NanoHttpd 服务器,那么你不能责怪 NanoHttpd 服务器。你应该责怪没有发送请求的人。因此,如果 wifi 已关闭,则如果 Mapbox 无法请求,请归咎于 Mapbox。
【参考方案1】:
尝试使用NanoHTTPD(String host, int port) 构造函数构建您的服务器,并指定127.0.0.1
(用于本地主机环回接口)或0.0.0.0
(用于所有接口)。这样,无论设备的连接如何,您都可以连接到您的服务器。
public class MyHttpd extends NanoHTTPD
public MyHttpd()
super('0.0.0.0', 8080);
// ....
// ....
【讨论】:
它不起作用。我尝试了localhost
、127.0.0.1
和0.0.0.0
,但方法 [serve()][1] 不能调用 [1]:github.com/NanoHttpd/nanohttpd/blob/master/core/src/main/java/…
能否在OP中添加HTTP服务器sn-p?以上是关于离线时无法建立与本地主机的连接的主要内容,如果未能解决你的问题,请参考以下文章
Rails 5 API - 即使无法建立与数据库的连接,也加载静态页面
当设备在 react-native 中离线时,在 webview 中显示本地图像