KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Most datagram receiving functions such as c's recv or read, javas DatagramPacket class or pythons SocketServer, include the possibility to find out the amount of received data. c: int amount = recv(sock, buf, n, MSG_WAITALL); java: int amount = datagramSocket.getLength(); python: class MyUDPHandler(socketserver.BaseRequestHandler): def handle(self): amount = len (self.request[0]) Are these reliable? Or is it possible that only parts of the message are received, due to for example packet fragmentation or network delay? In other words: When I send a variable length chunk of data via udp and receive it at the other end, are these amount values exactly equal to the size of the original chunk? Edit: ninjalj made a good point and I want to include it here. What happens when the receiving function is interrupted, for instance by a signal? What happens when two threads simultaneously try to receive from the same socket?
Tags (comma-separated)
Save Edits
Cancel