Zum Inhalt springen

Video per HTTP bereitstellen


speedi

Empfohlene Beiträge

Ich muss in ein Programm die Funktionalität einbauen, dass es mir eine Datei von der Festplatte via HTTP bereitstellt.

Gibt es irgendwie eine Möglichkeit sich mit JAVA-Boardmitteln einen mini-HTTP-Server zu schreiben, der das macht?

Ich möchte einfach, dass ich zu gegebener Zeit dann im Browser "http://localhost:Port/videoname.mpg" eintippen kann und das Video geöffnet wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Update:

Hab jetzt mal bisschen rumprobiert:


ServerSocket server = new ServerSocket(port);

			final Socket socket = server.accept();


			FileInputStream in = new FileInputStream(file);

			DataOutputStream out = new DataOutputStream(socket.getOutputStream());


//Ausgabe des Requests:

			new Thread(){

				public void run() {

					try {

						InputStreamReader in = new InputStreamReader(socket.getInputStream());


						int i;

						while((i = in.read()) != -1){

							System.out.print((char)i);

						}


						in.close();

					} catch (IOException e) {

						e.printStackTrace();

					}

				}

			}.start();


			//Senden des Videos

                        byte [] bytes = new byte[1024*1024];

			int length = 0;


			while((length =in.read(bytes, 0, bytes.length)) != -1){

				out.write(bytes,0,length);

			}


			out.close();

			in.close();

Leider reicht es offensichtlich nicht aus, dass Video einfach so rauszuschicken. Weiß jemand was ich vorher noch senden muss um den Client zu informieren was jetzt kommt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Weiß jemand was ich vorher noch senden muss um den Client zu informieren was jetzt kommt?

"Socket" implementier nur TCP-sockets, aber nicht automatisch das HTTP-protokoll. der bytestream der geschickt wird, enthält zwar die daten im rohformat, allerdings kann ein HTTP-client diese nicht direkt verarbeiten, ohne zumindest die mindestens erforderlichen HTTP-header zu erhalten.

so jedenfalls denke ich :)

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab jetzt mal versucht das ganze als HTTP-Server-Response zu implementieren und deshalb vorher folgendes rausgeschickt:

outWriter.println("HTTP/1.1 200 OK");

outWriter.println("Server: MyJavaMiniServer");

outWriter.println("Accept-Ranges: bytes");

outWriter.println("Content-Length: 7355500");

outWriter.println("Keep-Alive: timeout=5, max=100");

outWriter.println("Connection: Keep-Alive");

Allerdings funktioniert das immer noch nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...