22-01-2022, 09:17 PM
Hola comunidad,
Estoy tratando de enviar datos continuamente a un código en python. Usé sockets udp para enviar los datos. La tasa de envío es más rápida que la tasa de recepción. Cuando detengo el envio de datos, durante un tiempo sigo recibiendo datos. Esto me imagino será porque el buffer está lleno y hasta que no se vacié no deja de recibir. ¿Cómo puedo evitar esto o como puedo recibir solo los datos más recientes?
Este es mi código. Cuento con una clase para inicializar el socket y luego con un método para recibir los datos.
Gracias de antemano!
Estoy tratando de enviar datos continuamente a un código en python. Usé sockets udp para enviar los datos. La tasa de envío es más rápida que la tasa de recepción. Cuando detengo el envio de datos, durante un tiempo sigo recibiendo datos. Esto me imagino será porque el buffer está lleno y hasta que no se vacié no deja de recibir. ¿Cómo puedo evitar esto o como puedo recibir solo los datos más recientes?
Este es mi código. Cuento con una clase para inicializar el socket y luego con un método para recibir los datos.
Código:
import socket
#import sys
class ReceptorUDP(object):
buffer_Size=502
def __init__(self,address):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind(address)
print("Sockets up ... OK")
def recibirDatos(self):
print('\nwaiting to receive message')
while True:
data, address = self.sock.recvfrom(self.buffer_Size)
if not data:
break
print('received {} bytes from {}'.format(
len(data), address))
return data