Hi@all,
bin gerade neu hier im Forum. Habe ein Problem beim Programmieren mit Java wo ich auch beim Google noch keine Lösung gefunden habe.
Also ich habe eine Java Application unter Linux (Kernel 2.6) die einen UDP Datenstrom empfängt, die eingehenden Packete verarbeitet und dann wieder weiter schickt auch als UDP Packete. Hatte nun schon ein paar mal das Problem das der eingehende UDP Strom den ReceiveBuffer zum Overflow gebracht hat und die Application dann neu gestartet werden muß. Das möchte ich nun damit abfangen das wenn der SocketBuffer eine bestimmte Anzahl an Packeten in der Queue hat einen Flush auf die Queue macht. Das passiert normalerweise nur wenn bei einem Playback die Datenrate der UDP Packete nicht richtig gesetzt wurde.
Die UDP Buffer habe ich über Proc FS bereits auf 40MB gesetzt.
Habe bisher noch keine Möglichkeit in Java gefunden herauszufinden wieviele Packete sich im Socket Puffer befinden. Mit der Funktion 'getReceiveBufferSize()' bekomme ich ja nur zurück was das OS bereit stellt.
Hoffe das es dafür eigentlich eine relative triviale Lösung geben sollte
.
MfG
Jens
bin gerade neu hier im Forum. Habe ein Problem beim Programmieren mit Java wo ich auch beim Google noch keine Lösung gefunden habe.
Also ich habe eine Java Application unter Linux (Kernel 2.6) die einen UDP Datenstrom empfängt, die eingehenden Packete verarbeitet und dann wieder weiter schickt auch als UDP Packete. Hatte nun schon ein paar mal das Problem das der eingehende UDP Strom den ReceiveBuffer zum Overflow gebracht hat und die Application dann neu gestartet werden muß. Das möchte ich nun damit abfangen das wenn der SocketBuffer eine bestimmte Anzahl an Packeten in der Queue hat einen Flush auf die Queue macht. Das passiert normalerweise nur wenn bei einem Playback die Datenrate der UDP Packete nicht richtig gesetzt wurde.
Die UDP Buffer habe ich über Proc FS bereits auf 40MB gesetzt.
Habe bisher noch keine Möglichkeit in Java gefunden herauszufinden wieviele Packete sich im Socket Puffer befinden. Mit der Funktion 'getReceiveBufferSize()' bekomme ich ja nur zurück was das OS bereit stellt.
Hoffe das es dafür eigentlich eine relative triviale Lösung geben sollte
MfG
Jens