【发布时间】:2017-03-20 21:26:16
【问题描述】:
我正在为通过 Wifi 进行通信的系统编写代码,该系统由 Android 设备通过路由器将 UDP 数据包发送到 Raspberry Pi 组成。发送的信息对时间非常关键,作为提高性能的一种方式,我正在尝试为 Pi 编写 python 代码,以在缓冲区中有更新的数据包时忽略旧数据包(数据指示控制接口的状态- 旧数据无用)。由于 Pi 的处理能力有限,我想避免对旧数据做额外的工作。目前代码如下:
import time
import socket
#This section of code creates the socket and shows that it is running
UDP_IP = ''
UDP_PORT = 2016
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while(1):
data, addr = sock.recvfrom(1024) #receives UDP packets, buffer size is 1024 bytes
# do time critical stuff with data
我知道 SOCK_DGRAM 如果我将缓冲区大小设置为 8(正在发送的数据中的字节数),它只会带来 8 个字节并丢弃其余的 - 这会实现我的目标,还是会带来在最旧的 8 个字节中,还是有其他行为?
感谢您的帮助!
【问题讨论】:
标签: python performance sockets networking udp