有没有更好的方法来监听端口并读取 UDP 数据?
我做一个
self.udps.bind((self.address,self.port)
ata, addr = self.udps.recvfrom(1024)
它似乎被锁定在这种状态,直到它在裸脚本或线程中获得该数据。
这很好用,但是如果你想说让它停止收听,它不会直到它接收到数据并继续意识到它需要停止收听。我每次都必须向端口发送 UDP 数据才能正常关闭。有没有办法让它在特定条件下立即停止收听?
有没有更好的方法来监听端口并读取 UDP 数据?
我做一个
self.udps.bind((self.address,self.port)
ata, addr = self.udps.recvfrom(1024)
它似乎被锁定在这种状态,直到它在裸脚本或线程中获得该数据。
这很好用,但是如果你想说让它停止收听,它不会直到它接收到数据并继续意识到它需要停止收听。我每次都必须向端口发送 UDP 数据才能正常关闭。有没有办法让它在特定条件下立即停止收听?
recfrom
等待直到数据到达指定端口。
如果您不希望它永远收听,请设置超时:
self.udps.bind((self.address,self.port)
self.udps.settimeout(60.0) # set 1min timeout
while some_condition:
try:
ata, addr = self.udps.recvfrom(1024)
except socket.timeout:
pass # try again while some_condition
else:
# work with the received data ...