so_many_questions
so_many_questions

Reputation: 31

receiving messages through udp with delay python

I'm trying to understand how udp messages are received. I have an external tool that sends data over udp every 1 second, and a simple python script that receives them something like this.

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(ip,port)
while True:
    data, addr = sock.recvfrom(num)
    

I can receive the data, but if I change the code to

while True:
    data, addr = sock.recvfrom(num)
    time.sleep(10)

I am still receiving the same messages as before, just at a slower rate. I was expecting the messages sent during the 'time.sleep(10)' will be lost (which I understand will be most if not all the messages). Is there an internal storage that stores all the messages sent, whether or not the receiver is receiving them?

Upvotes: 0

Views: 303

Answers (1)

Lior Cohen
Lior Cohen

Reputation: 5745

A Socket has a buffer that has nothing to do with python but with the OS.

So yes, the udp packets are just sitting there and waiting for the application to read them from the buffer to the application memory.

Of course this buffer is limited so if you wait too long tthe buffer will get full you will start to lose packets.

Upvotes: 1

Related Questions