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);
});
}
まだクライアントを実装していませんが、クライアントを実装する必要はありますか? ブラウザはクライアントとして十分ではありませんか?
また、サーバーに画像を提供させるにはどうすればよいですか?