mirror of https://github.com/davisking/dlib.git
Made these examples more robust. Now if the server's start() function throws an
exception it will be printed right away rather than after the user hits the enter key. I also removed the global server objects since that was pretty sketchy too. --HG-- extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%403713
This commit is contained in:
parent
b9f602e1b6
commit
991e8946b1
|
@ -13,6 +13,7 @@
|
|||
#include <sstream>
|
||||
#include <string>
|
||||
#include "dlib/server.h"
|
||||
#include "dlib/ref.h" // for ref()
|
||||
|
||||
using namespace dlib;
|
||||
using namespace std;
|
||||
|
@ -91,28 +92,42 @@ class web_server : public server::http_1a_c
|
|||
|
||||
};
|
||||
|
||||
// create an instance of our web server
|
||||
web_server our_web_server;
|
||||
|
||||
void thread()
|
||||
void thread(web_server& the_server)
|
||||
{
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down which will in turn cause
|
||||
// our_web_server.start() to unblock and thus the main() function will terminate.
|
||||
our_web_server.clear();
|
||||
try
|
||||
{
|
||||
// Start the server. start() blocks until the server is shutdown
|
||||
// by a call to clear()
|
||||
the_server.start();
|
||||
}
|
||||
catch (socket_error& e)
|
||||
{
|
||||
cout << "Socket error while starting server: " << e.what() << endl;
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << "Error while starting server: " << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
// create a thread that will listen for the user to end this program
|
||||
thread_function t(thread);
|
||||
// create an instance of our web server
|
||||
web_server our_web_server;
|
||||
|
||||
// make it listen on port 5000
|
||||
our_web_server.set_listening_port(5000);
|
||||
our_web_server.start();
|
||||
|
||||
// create a thread that will start the server. The ref() here allows us to pass
|
||||
// our_web_server into the threaded function by reference.
|
||||
thread_function t(thread, ref(our_web_server));
|
||||
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down
|
||||
our_web_server.clear();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "dlib/sockets.h"
|
||||
#include "dlib/server.h"
|
||||
#include "dlib/ref.h" // for ref()
|
||||
#include <iostream>
|
||||
|
||||
using namespace dlib;
|
||||
|
@ -41,34 +42,44 @@ class serv : public server::kernel_1a_c
|
|||
|
||||
};
|
||||
|
||||
serv our_server;
|
||||
|
||||
void thread()
|
||||
void thread(serv& our_server)
|
||||
{
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down which will in turn cause
|
||||
// our_server.start() to unblock and thus the main() function will terminate.
|
||||
our_server.clear();
|
||||
try
|
||||
{
|
||||
// Start the server. start() blocks until the server is shutdown
|
||||
// by a call to clear()
|
||||
our_server.start();
|
||||
}
|
||||
catch (socket_error& e)
|
||||
{
|
||||
cout << "Socket error while starting server: " << e.what() << endl;
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << "Error while starting server: " << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
// create a thread that will listen for the user to end this program
|
||||
thread_function t(thread);
|
||||
|
||||
serv our_server;
|
||||
|
||||
// set up the server object we have made
|
||||
our_server.set_listening_port(1234);
|
||||
our_server.set_max_connections(1000);
|
||||
|
||||
// start the server
|
||||
our_server.start();
|
||||
// create a thread that will start the server. The ref() here allows us to pass
|
||||
// our_server into the threaded function by reference.
|
||||
thread_function t(thread, ref(our_server));
|
||||
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down
|
||||
our_server.clear();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "dlib/sockets.h"
|
||||
#include "dlib/server.h"
|
||||
#include "dlib/sockstreambuf.h"
|
||||
#include "dlib/ref.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace dlib;
|
||||
|
@ -67,32 +68,44 @@ class serv : public server::kernel_1a_c
|
|||
|
||||
};
|
||||
|
||||
serv our_server;
|
||||
|
||||
void thread()
|
||||
void thread(serv& our_server)
|
||||
{
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down which will in turn cause
|
||||
// our_server.start() to unblock and thus the main() function will terminate.
|
||||
our_server.clear();
|
||||
try
|
||||
{
|
||||
// Start the server. start() blocks until the server is shutdown
|
||||
// by a call to clear()
|
||||
our_server.start();
|
||||
}
|
||||
catch (socket_error& e)
|
||||
{
|
||||
cout << "Socket error while starting server: " << e.what() << endl;
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << "Error while starting server: " << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
// create a thread that will listen for the user to end this program
|
||||
thread_function t(thread);
|
||||
|
||||
serv our_server;
|
||||
|
||||
// set up the server object we have made
|
||||
our_server.set_listening_port(1234);
|
||||
our_server.set_max_connections(1000);
|
||||
|
||||
// start the server
|
||||
our_server.start();
|
||||
// create a thread that will start the server. The ref() here allows us to pass
|
||||
// our_server into the threaded function by reference.
|
||||
thread_function t(thread, ref(our_server));
|
||||
|
||||
cout << "Press enter to end this program" << endl;
|
||||
cin.get();
|
||||
// this will cause the server to shut down
|
||||
our_server.clear();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue