0
クライアントからUDPパケットを受信するPCでサーバアプリケーションを実行しています。 UDPパケットは受信され(WireSharkで確認されます)、間違ったチェックサムが含まれます。私はクライアントを制御することができず、これらのパケットをPythonで受け取れるようにする必要があります。次のコードはパケットを表示しません:Pythonで間違ったチェックサムでUDPパケットを受信する
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
while 1:
data,addr = UDPSock.recvfrom(buf)
if not data:
print "Client has exited!"
break
else:
print "\nReceived message '", data,"'"
UDPSock.close()
とにかく私は不正な形式のUDPパケットを受け取ることができますか?
チェックサムが間違っている理由をご存知ですか?つまり、それはUDPクライアントによって処理されると考えられます。あなたが投稿したコードは、チェックサムが間違っているため、その問題を解決するため、下線のネットワークデバイスによって破棄される可能性があるため、パケットは表示されません。 –
チェックサムが間違っていることをどのように知っていますか? _sending_システム上で実行されているWiresharkは、チェックサム計算がアダプターにオフロードされ、ドライバーがチェックサムを実行するのを邪魔しないため、(ほとんどの場合、今日は)悪質なチェックサムを報告することがよくあります。これはよく知られている擬似問題です。しかし、_receiving_システムでチェックサムが悪い場合は、別の問題です。 –
実際にチェックサムが悪い場合は、両システム間のパスの両端と物理ハードウェアの特性を知る必要があります。 –