Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Verständnisfrage Sockets und write()

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.09.2004
    Beiträge
    12

    Verständnisfrage Sockets und write()

    Hallo,
    ich habe im Moment ein Problem, ich soll ein MP3-Streamer auf Java portieren und habe nun ein kleines Problem.
    Java stellt nicht das Problem dar, sondern der Writebefehl von unten.
    Code:
    int sock=socket(PF_INET,SOCK_STREAM,0);
    write(sock,buf,DATA_CHUNK_SIZE);
    Das hier ist der C Code den ich portieren soll.

    buf entspricht einem void zeiger auf einen Speicher der mit malloc reserviert wurde.
    DATA_CHUNK_SIZE ist 4096
    Meine Frage ist die, wann schreibt write in den Puffer, bzw. erkennt er z.B. ob der Client alle Daten aus dem Puffer gelesen hat?
    Leider haben meine ganzen Internetrecherchen darüber nichts eindeutiges zu tage gebracht und ich bräuchte die Information um die Portierung weiter voran zu treiben.

    Mfg
    Moddingfan

    P.S. Ich weiß, dass das das C/C++ UnterForum ist, doch hat jemand noch nen Tipp für die Java Portierung des Befehls?
    Denn bislang schickt mir der Rechner die Daten viel zu schnell raus (mit Java) und deshalb hat der StreamClient ein Problem .

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wenn der Socket normal, also Blocking, geöffnet ist, müsste der write() Befehl ansich so lange blockieren, bis die ganzen Daten geschrieben werden konnten, d.h. bis sie entweder im Ausgansgpuffer des lokalen Sockets, oder im Eingangspuffer des Zielsockets Platz haben.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •