Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Video per HTTP bereitstellen

Empfohlene Antworten

Veröffentlicht

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.

  • Autor

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?

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

  • Autor

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.