So in C++, using Something like Unix Sockets or Winsock with C++ lets you use things like TCP/IP. But it only lets you connect to an IP within your router when its by itself.
How can I have the program somehow forward the connection to like an HTTP server or something (Hyper text transfer protocol, website), and have the other side connect to the server at the same time on a whole other router, and then the HTTP server receive messages from one, and forwards it to the other.
That way you can be on the other side of the world like any other I.M program.
Also, what do you best recommend for a socket library that can be used on Unix, Windows, and maybe Linux? If there isn't any others that can be used other than Unix Sockets, and Winsock, then i'll just have to learn both and then use the startup functions for Windows when using Winsock (I don't know how to have the program detect the OS though...).