[英]How to capture UDP packets with Python
事實和上下文元素:
我需要捕獲從GPS設備傳來的數據(緯度,經度),對它們進行重新處理,使其適合於另一個應用程序(QGIS)。 為此,我嘗試執行基於Python的模塊(起初我認為是簡單的)。 據鯊魚分析。
Source Destination Protocol length info
192.168.0.1 225.2.5.1 UPD 136 source port : 1045 destination port:6495
我試過這個代碼在各種來源中發現,像這樣的一個 。
import socket
import os
UDP_IP = "225.2.5.1"
UDP_PORT = 6495
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(4096) # buffer size is 1024 bytes
print "received message:", data
os.system("pause")
問題
這段代碼對我不起作用。控制台窗口是折疊(盡管os.system(“ pause”)還是無限期運行)。由於我不太精通python編程或聯網,因此我已經使用其他IP地址和端口。由於沒有結果,我也開始混合使用它們,最后放棄了,決定與社區分享我的問題。
目的 :
我需要能夠使用python 2.7訪問此UDP框架中包含的數據,並將其保存在變量(數據)中,以進行編程項目的下一步。
感謝您的閱讀和幫助
您應該從Windows cmd-console或powershell而不是從資源管理器啟動python程序,然后窗口保持打開狀態,並且您會看到錯誤消息。 刪除縮進錯誤和最后一行。 確保您的計算機具有給定的IP地址。 將您的套接字綁定到任何地址:
import socket
UDP_IP = "0.0.0.0"
UDP_PORT = 6495
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(4096)
print "received message:", data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.