事实&上下文元素: 我需要捕获来自GPS设备的数据(纬度,经度),并将其重新设计并使其适用于其他应用程序(QGIS)。为此,我尝试执行(我最初想的是一个简单的)基于python的模块。 根据线鲨分析。
Source Destination Protocol length info
192.168.0.1 225.2.5.1 UPD 136 source port : 1045 destination port:6495
我已尝试在各种来源上找到此代码,例如one。
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("暂停")或无限期运行。因为我不熟练python编程或网络我已经用其他IP地址和端口测试了提供的代码。由于没有结果,我也开始混合它们。最后,放弃并决定分享我的社区问题。
目标:
我需要能够使用python 2.7访问此UDP框架中包含的数据,将它们保存在我的编程项目的下一步的变量(数据)中。
感谢您的阅读和帮助
答案 0 :(得分:1)
您应该从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