i have socket receives information in packets of 1024 characters or less. in packets messages or parts thereof. each message ended 2 characters.
the problem appears when there fragmentation of messages across 2 packages. algorithm recommend handle fragmentation? (i'm not looking reinvent wheel here, because think ubiquitous problem).
example:
|011 012 013 014 \r\r 021 022 023 | 024 \r\r 031 032 033 | 034 \r\r 041 042 043 044 \r\r |
| ... | -> packet
xxx xxx ... \r\r -> message
buffer = '' # reading loop while true: data = socket.recv(1024) if not data: break # add current data read socket temporary buffer buffer += data # search complete messages messages = buffer.split('\r\r') # need @ least 2 messages continue if len(messages) == 1: continue # seperator found, iterate across complete messages message in messages [:-1]: # handle here message print message # set buffer last cutted message buffer = messages [-1]
Comments
Post a Comment