I'll need to test what it looks like when client.Timeout is zero.
When using 
        
      client.SetReadDeadline(time.Now().Add(client.Timeout))

 I was thinking it would set the Deadline to now  and disconnect me instantly.