bind() just remember address. We will cal bind() at the time of connect as we can have several connection trials.
Make connection to remote site. Bind, handle connection error, try several addresses, etc
timeout is the socket write timeout.
Set timeout for receive calls. 0 means no timeout.