2014-09-30 22:07:25 +08:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
// Headers
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
#include <cstdlib>
|
2022-07-05 00:20:58 +08:00
|
|
|
#include <iostream>
|
2014-09-30 22:07:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
// Function prototypes
|
|
|
|
// (I'm too lazy to put them into separate headers...)
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
void doClient(unsigned short port);
|
|
|
|
void doServer(unsigned short port);
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
/// Entry point of application
|
|
|
|
///
|
|
|
|
/// \return Application exit code
|
|
|
|
///
|
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
// Choose a random port for opening sockets (ports < 1024 are reserved)
|
|
|
|
const unsigned short port = 2435;
|
|
|
|
|
|
|
|
// Client or server ?
|
|
|
|
char who;
|
2014-11-17 16:44:46 +08:00
|
|
|
std::cout << "Do you want to be a server ('s') or a client ('c')? ";
|
2022-07-05 00:20:58 +08:00
|
|
|
std::cin >> who;
|
2014-09-30 22:07:25 +08:00
|
|
|
|
|
|
|
if (who == 's')
|
|
|
|
{
|
|
|
|
// Run as a server
|
|
|
|
doServer(port);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// Run as a client
|
|
|
|
doClient(port);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Wait until the user presses 'enter' key
|
|
|
|
std::cout << "Press enter to exit..." << std::endl;
|
|
|
|
std::cin.ignore(10000, '\n');
|
|
|
|
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|