c++ crossplatform socket