I want to send/receive 'portioned' data using TCP Python socket
module.
My receiving server side socket
is set to receive 40 bytes of data in a single recv
call:
while True:
data = connection.recv(40)
if not data:
break
...
connection.close()
I have some sample data ~500 bytes long, converter to bytes
object, that is being sent to 'server' by 'client':
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
...
s.send(sample_data)
Although I only have one call to send
method does it mean that client sends 40 bytes of 'sample_data' at a time while server 'requests' 40 bytes at once for as long as whole package is not sent completely?
I found in this post there's SO_SNDBUF
parameter that sets size of send
buffer for socket
, but how is it different from 'ordinary' socket
without SO_SNDBUF
being set?
buffer_size = 40
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, buffer_size)
...
s.send(sample_data)