Ich habe ein paar nette Tutorials auf dem Client/Server in Dart gefunden. Der Client sendet nur eine Anfrage an den Server über localhost am angegebenen Port und der Server antwortet nur mit einem String.Client-Server in Dart
Allerdings habe ich keine Hilfe gefunden, wie Bilder zu dienen. Ich möchte in der Lage sein, den Server zu Serverbildern zum Client zu bekommen. Zum Beispiel, wenn der Client eine Anfrage wie: localhost: 1313/Bilder macht, sollte der Server mit einer Seite antworten, die alle Bilder anzeigt, die sich im Ordner "images" befinden.
Hier ist der Code, den ich bisher habe:
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);
});
}
Ich habe noch nicht den Client implementiert, aber ist es notwendig, einen Client zu implementieren? Ist der Browser nicht genug als Client?
Was muss ich tun, damit der Server die Bilder liefert?
Möchten Sie also eine Liste mit Bilddateinamen oder Bildern selbst anzeigen? Für Letzteres müssen Sie eine Art HTML-Vorlage erstellen. – tjameson