By catching the exception, you should be able to see the actual error message, so you can see what the actual issue is:
NetworkInterface::NetworkInterface(void):
sock(io_service)
{
try {
// your code here..
} catch (const std::exception& error) {
// Should print the actual error message
std::cerr << error.what() << std::endl;
}
}