我在 Dart 的客户端/服务器上找到了一些不错的教程。客户端只是通过指定端口上的 localhost 向服务器发出请求,服务器只是用一个字符串响应。
但是,我没有找到有关如何提供图像的任何帮助。我希望能够让服务器将图像服务器发送给客户端。例如,如果客户端发出类似:localhost:1313/Images 的请求,那么服务器应该响应一个显示“images”文件夹中所有图像的页面。
这是我到目前为止的代码:
import 'dart:io';
class Server {
_send404(HttpResponse res){
res.statusCode = HttpStatus.NOT_FOUND;
res.outputStream.close();
}
void startServer(String mainPath){
HttpServer server = new HttpServer();
server.listen('localhost', 1111);
print("Server listening on localhost, port 1111");
server.defaultRequestHandler = (var req, var res) {
final String path = req.path == '/' ? '/index.html' : req.path;
final File file = new File('${mainPath}${path}');
file.exists().then((bool found) {
if(found) {
file.fullPath().then((String fullPath) {
if(!fullPath.startsWith(mainPath)) {
_send404(res);
} else {
file.openInputStream().pipe(res.outputStream);
}
});
} else {
_send404(res);
}
});
};
void main(){
Server server = new Server();
File f = new File(new Options().script);
f.directory().then((Directory directory) {
server.startServer(directory.path);
});
}
我还没有实现客户端,但是有必要实现客户端吗?浏览器还不够客户端吗?
另外,我需要做什么才能使服务器提供图像?