kostenloser Webspace werbefrei: lima-city


ChatServer

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    ork

    ork hat kostenlosen Webspace.

    Hallo Leute!

    Ich möchte einen Server realisieren, der nicht auf bisherige Weise nur Strings und Bytes verschicken kann, vielmehr soll dieser Server Streams jeder Art beim Client anzapfen können und diese dann an einen anderen Client weiterreichen können. Dieses Konzept soll es ermöglichen ein Video in Echtzeit zu verschicken. So ist es beispielsweise möglich, Musik zu teilen, Filme zu tauschen, aber auch eine VOIP-Verbindung ist kein Problem mehr, selbst Webcam-Daten müssten sich per Stream einfach senden lassen.

    Mein Problem ist nun, wie ich das ganze mit Sockets realisiere. Zum einen bin ich mir nicht sicher, ob TCP/IP die richtige Lösung ist, Videos und Ton müssen schließlich in Echtzeit gesendet werden. Zum anderen müssen ja Server sowie Client multi-threaded sein, damit nicht blockiert wird.

    Für den Server gibt es ja nun zwei Ansätze:

    1. Alle Clients werden in einer Liste gespeichert und mit einer ID versehen, das ermöglicht ein schnelles Streamen, belegt aber bei vielen Benutzern viele Ressourcen, die allerdings wieder teilweise eingespart würden, da man nicht bei jeder Verbindung einen neuen Socket zu erstellen braucht.

    2. Nur die aktuell sendenden Clients werden in einer Liste gespeichert. Trifft nun ein Stream von Client A für Client B ein, so muss A solange in der Leitung bleiben, bis sich B meldet, z. B. mit einer Alive-Anfrage, um den Stream weiterzuleiten. Das ist wesentlich ressourcensparender, aber ist dafür undurchsichtig und schwammig.

    Bitte beratet mich da ein wenig,
    ork
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Naja zum Versenden von Videos und Musik als Stream brachst du das JMF (Java Media Framework) was per RTP ermöglicht Multimediadateien zu streamen.

    Richtig gute Tuts hab ich dazu nicht gefunden aber es gibt ja noch die Doku dazu.

    Beitrag zuletzt geändert: 17.1.2009 12:51:38 von reimann
  4. Autor dieses Themas

    ork

    ork hat kostenlosen Webspace.

    Schon, aber das war ja nicht meine Frage ;-)
  5. Hallo,

    ich habe deine Frage verstanden und bin auch auf der suche nach einer solchen Lösung.
    Bei mir soll allerdings nur ton übertragen werden. Ich habe bisher folgendes modell für den server
    in betracht gezogen:

    Server wartet auf verbindung
    Verbindung=>neuer Thread
    Thread wartet bis verbindung von client 2
    Server kriegt noch eine verbindung
    Thread wartet nicht mehr=>dann
    while(true)
    byte[] b = new byte[8192];
    in.read(b);
    out.write(b);


    Das modell habe ich noch nicht geschrieben, aber es wird wohl auch sehr fehleranfällig.
    Hoffe trotzdem es hat dir geholfen.

    Gruß Tillorgias
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!