Use ToSocketAddr to allow the string form of a network address

Using the `ToSocketAddr` trait, we can eliminate the need to import `Ipv4Addr` every time.
The compiler complains if I omit `Send`. In fact, I was forced to insert it because of that.

I think that's because `addr` is brought to `proc()`. It should capture all the variables. Are there any better solutions?