suppose I write data really fast [I have all the data in memory] to a blocking socket. 
further suppose the other side will read data very slow [like sleep 1 second between each read]. 

what is the expected behavior on the writing side in this case? 
would the write operation block until the other side reads enough data, or will the write return an error like connection reset?