I have to apologize for me vague first post.
I should have watched my logs more precisely - the buffering is not as big as I thought.
Every packet contains 3 integer values and 1 MByte (1024*1024) of bytes (==blob)
The timing looks as follows:
Write(Chunk#0) : ~ 1 msec : OK
Write(Chunk#1) : ~ 1 msec : OK
Write(Chunk#2) : ~ 1 msec : OK
Write(Chunk#3) : ~ 900 msec : OK
Write(Chunk#4) : ~ 1 msec : OK
Write(Chunk#5) : ~20.000 msec : fails
Write(Chunk#6) : < 1 msec : fails
Write(Chunk#7) : < 1 msec : fails
:
:
Write(Chunk#n) : < 1 msec : fails
Watching on Wireshark the sending starts as soon as the first chunk is written.
The 6th call sending chunk #5 actually timeouts after 20 seconds, while the first chunk is still transmitting.
The transmission of the first chunk takes a total time of 70 seconds (seen in Wireshark).
Currently I see no way to slow down my sending client.
From Sync API I see no way to recognize that I should slow down to avoid the timeout on Chunk#5.
Is there a knob where I can increase the 20 seconds timeout?
Is there a way to get a more detailed error message - not only a bool indicating false?
Any other good ideas?
Thanks