Basic multithread server code
Include (only) what you use
Users of Server.h don't need most of those headers; they can be reduced to
#include &lt;string&gt;

You might need some of the other headers in the implementation, but try to avoid polluting users' namespaces (and slowing their compilations).
Consider adding daemonize code
Most servers want to be able to daemonize before they start - provide a facility to do the forking and dissociation of controlling terminal and the rest.  Make sure it's optional, so users can run in foreground if they want (e.g. for debugging, or when controlled by a supervisor like systemd).
Report errors back to caller
Consider this code:
    if(newsockfd &lt; 0){
        perror(&quot;Error: Failed to connect to incoming connection.\n&quot;);
    }

This prints a message to stderr, and then keeps going.  How does the server (subclass) know that we failed?  What if we want to syslog the failure?  It's better to communicate this information in return value or an exception, so the application can take the right action - here, in a library, we don't know what's appropriate, nor whether standard error stream is even available to us.