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
UDP-Buffer löschen
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.
Wobei letztendlich die Verarbeitung zu optimieren mir doch als sinnvoller erscheint.
@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.
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