Forum: Mikrocontroller und Digitale Elektronik Pufferüberlauf bei UDP-Empfang


von henne (Gast)


Lesenswert?

Hallo zusammen

ich habe folgendes Problem mit dem Empfang von Broadcast-Paketen auf 
einem Beck IPC (SC11). Hierbei handelt es sich im Wesentlichen um einen 
80186 @40MHz, auf dem ein proprietäres RTOS läuft. Ich vermute aber, 
dass das Problem eher an meinem Verständnis von UDP liegt:

Mehrere IPC hängen über WLAN in einem Netzwerk und broadcasten je mit 
20Hz kurze UDP-Pakete mit Statusinformationen.
Jeder IPC empfängt alle Pakete und verarbeitet sie.
Alle Statuspakete werden von einem PC problemlos empfangen.
Vom PC generierte Statuspakete werden von einem IPC problemlos 
empfangen.
Ein Statuspaket von einem IPC bringt den anderen zum Absturz:

Der Rx-Buffer des Sockets umfasst 1048 Bytes (128 Statuspakete). Mit 
'GetWaitingBytes' prüfe ich, ob ein vollständiges Paket im Puffer 
vorliegt und lese es dann in meine Datenstruktur ein. Dies wiederhole 
ich, bis alle vollständigen Pakete im Puffer verarbeitet sind.
In jedem Zyklus liegen (abhängig von der Anzahl IPC im LAN) 4..10 Pakete 
im Puffer.

Bei dem Einlesen von IPC-Statuspaketen bekomme ich nun den Fehler 240 
(Datagramm im Puffer ist größer als das Zielarray) und es wird NICHTS 
eingelesen. Dadurch läuft der Puffer voll und die 
'GetWaitingBytes'-Abfrage führt zu einer Endlosschleife.

Wie würdet Ihr die Pakete einlesen, oder woran könnte überhaupt diese 
Unverträglichkeit der IPC untereinander verursacht werden?

sorry für dan langen Post - und vielen Dank für jegliche Hinweise!
Hendrik

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.