The solution is to have direct access to the operating system (i.e Windows, Linux etc').
You're are looking after a Dedicated Server provider.
With this you actually get a computer which is at a data center with a link to the internet, with at least one real internet IP (usually).
Dedicated Server service is split to two categories;
1) Real Dedicated Server. You get a computer of your own, as said above.
2) Virtual Dedicated Server (cheaper). You get an emulated computer. This means that the provider took one real server and installed on it a "virtual PC" software (such as VMWare). The VPC software then runs several instances of virtual computers, each with its own configuration (they let you choose it).
There's also, if this is a small Linux app, something called "shell" (much cheaper). The provider limits you on how many processes you can run in your shell, and it works perfectly for stuff like PsyBNC.
Note that regarding dedicated servers, there's also "managed" and "non-managed". If you're after running your own C++ app then you probably want "non-managed", i.e none installs anything for you - you simply get a fresh server with minimal settings (again, subject to provider/configuration).
I have experienced shells and dedicated servers.
As for dedicated server I would really recommend SoftLayer!