startServer() async {
var server = await HttpServer.bind(InternetAddress.loopbackIPv4, 8080);
print("Server running on IP : " +
server.address.toString() +
" On Port : " +
server.port.toString());
await for (var request in server) {
request.response
..headers.contentType =
new ContentType("text", "plain", charset: "utf-8")
..write('Hello, world')
..close();
}
}
2条答案
按热度按时间46qrfjad1#
不需要任何第三方软件包也可以。Dart的
io
软件包提供了处理文件、套接字、http和其他I/O相关内容的功能。您可以使用HttpServer.bind
开始监听特定地址和端口上的HTTP请求。以下是我找到的一个片段(link):字符串
qvtsj1bj2#
我正在研究沿着一条类似的路线,虽然我不想公开文件系统,而是想传递一些数据。
1.许多软件包不适合在移动的应用程序中使用(即使Android和iOS是支持的平台)。这些软件包旨在用于服务器端设置,最好是命令行可执行应用程序。一些示例:https://pub.dev/packages/local_assets_server或https://pub.dev/packages/dhttpd或https://pub.dev/packages/belatuk_http_server
1.关于为根文件系统提供服务:你会有一些严重的困难,如果你想释放这样的应用程序到Play商店.特别是Android的最后几个版本访问更广泛的文件夹和文件集.该MANAGE_EXTERNAL_STORAGE是非常难以证明和释放或保持应用程序在商店(这和证明背景位置许可或满足儿童观众政策一样困难).让我们承认,这是相当危险的从安全的Angular 来看,暴露所有这些文件夹和文件.如果播放商店不是你的目标,你是确定与替代那么分销渠道就不是问题了。
这是一个中等职位:https://medium.com/@naik.rpsn/http-server-running-on-a-mobile-app-with-flutter-1ef1e717dda1。即使它的4岁的概念仍然可以适用。