Python отбрасывает UDP-пакет, который видит WireShark - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь отправить UDP-пакет со встроенного устройства с неформатированным металлом в скрипт, работающий на python.Я вижу пакет в WireShark и подтвердил, что все правильно.Тем не менее, скрипт Python не видит пакет.

Я протестировал код Python, отправив пакет UDP из другого скрипта Python.Принимающий скрипт Python получает его в этот момент.

Я вижу пакет в FireWall.В нем говорится, что пакет был разрешен и отправлен на python.Я создал правило в FireWall, чтобы разрешить трафик с этого устройства.Я также попытался отключить FireWall.

Ниже мой скрипт Python прослушивает пакет UDP

import socket

UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.bind(('', UDP_PORT))

while True:
  data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
  print "received message:", data
  print "received from:", addr

Почему Python отбрасывает пакет?

Netstat показывает этополучил пакет UDP без ошибок:

Netstat перед получением пакета

netstat -s -n -p UDP

Статистика UDP для IPv4

Полученные дейтаграммы = 5982014

Нет портов = 79096

Ошибки приема = 829

Отправлено дейтаграмм = 1641811

Netstat после получения пакета

netstat -s -n -p UDP

Статистика UDP для IPv4

Полученные дейтаграммы = 5982130

НетПорты = 79100

Ошибки приема = 829

Отправлено дейтаграмм = 1641932

...