Socket Datagram-Sockets mit integrierter Message Queue?

cable545

Aktives Mitglied
Ich nutze die Datagram-Sockets zum empfangen von Nachrichten. Wie sieht es aus wenn ich eine hohe Empfangsrate auf einem Datagram-Socket habe. können da pakete verloren gehen? kommt es darauf an wie komplex die weiterverarbeitung der nachrichten ist? oder gibt es ne implementierte warteschlange in der datagram-socket klasse?
 
Soweit ich weiß gehen Daten verloren wenn der native Buffer überläuft.
Eine Lösung hierfür wäre den Datagramm Socket regelmäßig (Interval kann man nach Last anpassen) zu leeren und in Java zwischen zu speichern.
EDIT: Oder solange blocken bis Daten ankommen. Ich hab die Erfahrung gemacht, dass wirklich verdammt viel Last notwendig ist wenn man konstant ließt (man muss nach dem lesen halt sofort die Nachrichten irgentwo in eine Warteschlange schreiben und direkt weiter lesen, nicht erst verarbeiten!)
 
Zuletzt bearbeitet:
Ah ok. In meinem Fall werden die Datagramme in einem separaten Thread am Socket empfangen. Sobald ein Datagramm angekommen ist, wird es zur Verarbeitung an einen anderen Thread weitergegeben.
Vielen Dank für die Info.
 

Zurück
Oben