Seite 1 von 1

UDP-Buffer löschen

Verfasst: Sonntag 21. Januar 2018, 20:34
von Frostie
Hallo!

Ich stehe vor dem Problem dass der Buffer mit zu vielen Nachrichten überfüllt wird und die Geschwindigkeit in der die Nachrichten abgearbeitet werden zu gering ist. Ich möchte ca. jede Sekunden oder so den Buffer clearen damit ich immer die neusten Nachrichten bekomme und die alten verbleibenden einfach löschen kann. Wie bekomme ich sowas hin?

Vielen Dank für eure Hilfe! :)

Grüße, Daniel

Re: UDP-Buffer löschen

Verfasst: Sonntag 21. Januar 2018, 21:03
von __deets__
Mir ist kein solcher Buffer bekannt. Insofern wuesste ich auch nicht, was du da loeschen koennen solltest. Wenn du selbst einen solchen Buffer anlegst, dann kannst du den doch auch leeren?

Re: UDP-Buffer löschen

Verfasst: Sonntag 21. Januar 2018, 21:53
von DasIch
Der Kernel hat UDP Buffer für ein- und ausgehende Pakete. Ich denke du würdest hinbekommen was du willst indem du die Größe reduzierst, so dass kein Backlog entstehen kann.

Wobei letztendlich die Verarbeitung zu optimieren mir doch als sinnvoller erscheint.

Re: UDP-Buffer löschen

Verfasst: Sonntag 21. Januar 2018, 21:58
von __deets__
@DasIch klar, der Kernel hat Buffer fuer so ziemlich alles. Aber darauf hat man ueblicherweise wenig bis keinen Einfluss. Ich habe zumindest noch nicht einmal Code gesehen, der insbesondere beim lesen irgendwie darauf Einfluss nehmen wuerde. Irgendwas mit ioctl mag natuerlich gehen, aber das ist dann auch OS-spezifisch. Und klar, man kann flush aufrufen, aber wer das nicht tut, und stattdessen am tropfenden Ende einer Pipe haengt, der hat auch da so weit ich weiss keinen Stich.

Re: UDP-Buffer löschen

Verfasst: Montag 22. Januar 2018, 18:01
von Frostie
Hab einen Workaround gemacht. Ich sende Nachrichten jetzt nur noch 60 mal die Sekunde. Macht auch Sinn weil mein Blender Game auch mit 60fps läuft. Funktioniert jetzt super! Alle Spieler sind jetzt ohne Verzögerung auf der Map :)