Я пытаюсь отправить 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