2012-03-29 6 views
0

Ich verwende eine Server-Anwendung auf einem PC, der UDP-Pakete von einem Client empfängt. Die UDP-Pakete werden empfangen (in WireShark verifiziert), enthalten jedoch die falsche Prüfsumme. Ich habe keine Kontrolle über den Client und muss in der Lage sein, diese Pakete in Python zu empfangen. Der folgende Code sieht die Pakete nicht:Empfangen von UDP-Paketen mit falscher Prüfsumme in Python

Wie auch immer in Python kann ich fehlerhafte UDP-Pakete empfangen?

+0

Kennen Sie den Grund, warum die Prüfsumme falsch ist? Ich meine, das soll vom UDP-Client gehandhabt werden. Der Code, den Sie gepostet haben, sieht die Pakete nicht, weil er wahrscheinlich vom Unterstreichungs-Netzwerkgerät herausgeworfen wird, da die Prüfsumme falsch ist, lösen Sie dieses Problem. –

+1

Woher wissen Sie, dass die Prüfsumme falsch ist? Wireshark, das auf dem _sending_ System läuft, wird oft (fast immer, heutzutage) schlechte Prüfsummen melden, weil die Prüfsummenberechnung auf den Adapter ausgelagert wird und der Treiber sich nicht darum kümmert, die Prüfsummen zu machen. Dies ist ein bekanntes Pseudoproblem. Wenn Sie jedoch schlechte Prüfsummen auf dem _receiving_ System bekommen, ist das ein anderes Problem. –

+0

Wenn Sie wirklich schlechte Prüfsummen erhalten, dann müssen wir die physischen Hardware-Eigenschaften an beiden Enden und entlang des Pfades zwischen den beiden Systemen kennen. –

Antwort

0

Die Lösung gefunden.

Ich verwendete die pycap Bibliothek in Kombination mit dpkt. Das Pycap-Modul ist veraltet, für ältere Versionen von Python, aber in den "Issues" hat jemand aktualisierte Binaries gepostet.