Extend existing Sock class to be able to deal with both IPv4 and IPv6. -Extend both sinful string handler to be able to deal with both IPv4 and IPv6 address. +Extend sinful string handler to be able to deal with both IPv4 and IPv6 address. Here is {link: http://www.boost.org/doc/libs/1_41_0/boost/asio/ip/address.hpp Boost IP address class}. In that class, they hold both IPv4 address and IPv6 address. But I think we only need one 16 byte array instead of having both. Also, we may not need to have ipv4/v6 flag because there is IPv4 address mapping in IPv6. [Zach commented that although we do not need separate storage for each IPv4 and IPv6 address, we still need a type because when we tries to connect to other machines, we do not know whether it should be done through IPv4 network or IPv6 network]