mirror of
https://github.com/davisking/dlib.git
synced 2024-11-01 10:14:53 +08:00
set the subversion eol-style to native for these files
--HG-- extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402353
This commit is contained in:
parent
0b26c0ba46
commit
8fa3384277
@ -1,130 +1,130 @@
|
||||
/*
|
||||
|
||||
This example illustrates the use of the HTTP extension to the server object
|
||||
from the dlib C++ Library.
|
||||
It creates a server that always responds with a simple HTML form.
|
||||
|
||||
To view the page this program displays you should go to http://localhost:5000
|
||||
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include "dlib/server.h"
|
||||
|
||||
using namespace dlib;
|
||||
using namespace std;
|
||||
|
||||
class web_server : public server::http_1a_c
|
||||
{
|
||||
void on_request (
|
||||
const std::string& path,
|
||||
std::string& result,
|
||||
const map_type& queries,
|
||||
const map_type& cookies,
|
||||
queue_type& new_cookies,
|
||||
const map_type& incoming_headers,
|
||||
map_type& response_headers,
|
||||
const std::string& foreign_ip,
|
||||
const std::string& local_ip,
|
||||
unsigned short foreign_port,
|
||||
unsigned short local_port
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
ostringstream sout;
|
||||
// We are going to send back a page that contains an HTML form with two text input fields.
|
||||
// One field called name. The HTML form uses the post method but could also use the get
|
||||
// method (just change method='post' to method='get').
|
||||
sout << " <html> <body> "
|
||||
<< "<form action='/form_handler' method='post'> "
|
||||
<< "User Name: <input name='user' type='text'><br> "
|
||||
<< "User password: <input name='pass' type='text'> <input type='submit'> "
|
||||
<< " </form>";
|
||||
|
||||
sout << "<br> path = " << path << endl;
|
||||
sout << "<br> foreign_ip = " << foreign_ip << endl;
|
||||
sout << "<br> foreign_port = " << foreign_port << endl;
|
||||
sout << "<br> local_ip = " << local_ip << endl;
|
||||
sout << "<br> local_port = " << local_port << endl;
|
||||
|
||||
|
||||
// If this request is the result of the user submitting the form then echo back
|
||||
// the submission.
|
||||
if (path == "/form_handler")
|
||||
{
|
||||
sout << "<h2> Stuff from the query string </h2>" << endl;
|
||||
sout << "<br> user = " << queries["user"] << endl;
|
||||
sout << "<br> pass = " << queries["pass"] << endl;
|
||||
|
||||
// save these form submissions as cookies.
|
||||
string cookie;
|
||||
cookie = "user=" + queries["user"];
|
||||
new_cookies.enqueue(cookie);
|
||||
cookie = "pass=" + queries["pass"];
|
||||
new_cookies.enqueue(cookie);
|
||||
}
|
||||
|
||||
|
||||
// Echo any cookies back to the client browser
|
||||
sout << "<h2>Cookies we got back from the server</h2>";
|
||||
cookies.reset();
|
||||
while (cookies.move_next())
|
||||
{
|
||||
sout << "<br/>" << cookies.element().key() << " = " << cookies.element().value() << endl;
|
||||
}
|
||||
|
||||
sout << "<br/><br/>";
|
||||
|
||||
sout << "<h2>HTTP Headers we sent to the server</h2>";
|
||||
// Echo out all the HTTP headers we received from the client web browser
|
||||
incoming_headers.reset();
|
||||
while (incoming_headers.move_next())
|
||||
{
|
||||
sout << "<br/>" << incoming_headers.element().key() << ": " << incoming_headers.element().value() << endl;
|
||||
}
|
||||
|
||||
|
||||
sout << "</body> </html>";
|
||||
|
||||
result = sout.str();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// create an instance of our web server
|
||||
web_server our_web_server;
|
||||
|
||||
void thread()
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
// create a thread that will listen for the user to end this program
|
||||
thread_function t(thread);
|
||||
|
||||
// make it listen on port 5000
|
||||
our_web_server.set_listening_port(5000);
|
||||
our_web_server.start();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
This example illustrates the use of the HTTP extension to the server object
|
||||
from the dlib C++ Library.
|
||||
It creates a server that always responds with a simple HTML form.
|
||||
|
||||
To view the page this program displays you should go to http://localhost:5000
|
||||
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include "dlib/server.h"
|
||||
|
||||
using namespace dlib;
|
||||
using namespace std;
|
||||
|
||||
class web_server : public server::http_1a_c
|
||||
{
|
||||
void on_request (
|
||||
const std::string& path,
|
||||
std::string& result,
|
||||
const map_type& queries,
|
||||
const map_type& cookies,
|
||||
queue_type& new_cookies,
|
||||
const map_type& incoming_headers,
|
||||
map_type& response_headers,
|
||||
const std::string& foreign_ip,
|
||||
const std::string& local_ip,
|
||||
unsigned short foreign_port,
|
||||
unsigned short local_port
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
ostringstream sout;
|
||||
// We are going to send back a page that contains an HTML form with two text input fields.
|
||||
// One field called name. The HTML form uses the post method but could also use the get
|
||||
// method (just change method='post' to method='get').
|
||||
sout << " <html> <body> "
|
||||
<< "<form action='/form_handler' method='post'> "
|
||||
<< "User Name: <input name='user' type='text'><br> "
|
||||
<< "User password: <input name='pass' type='text'> <input type='submit'> "
|
||||
<< " </form>";
|
||||
|
||||
sout << "<br> path = " << path << endl;
|
||||
sout << "<br> foreign_ip = " << foreign_ip << endl;
|
||||
sout << "<br> foreign_port = " << foreign_port << endl;
|
||||
sout << "<br> local_ip = " << local_ip << endl;
|
||||
sout << "<br> local_port = " << local_port << endl;
|
||||
|
||||
|
||||
// If this request is the result of the user submitting the form then echo back
|
||||
// the submission.
|
||||
if (path == "/form_handler")
|
||||
{
|
||||
sout << "<h2> Stuff from the query string </h2>" << endl;
|
||||
sout << "<br> user = " << queries["user"] << endl;
|
||||
sout << "<br> pass = " << queries["pass"] << endl;
|
||||
|
||||
// save these form submissions as cookies.
|
||||
string cookie;
|
||||
cookie = "user=" + queries["user"];
|
||||
new_cookies.enqueue(cookie);
|
||||
cookie = "pass=" + queries["pass"];
|
||||
new_cookies.enqueue(cookie);
|
||||
}
|
||||
|
||||
|
||||
// Echo any cookies back to the client browser
|
||||
sout << "<h2>Cookies we got back from the server</h2>";
|
||||
cookies.reset();
|
||||
while (cookies.move_next())
|
||||
{
|
||||
sout << "<br/>" << cookies.element().key() << " = " << cookies.element().value() << endl;
|
||||
}
|
||||
|
||||
sout << "<br/><br/>";
|
||||
|
||||
sout << "<h2>HTTP Headers we sent to the server</h2>";
|
||||
// Echo out all the HTTP headers we received from the client web browser
|
||||
incoming_headers.reset();
|
||||
while (incoming_headers.move_next())
|
||||
{
|
||||
sout << "<br/>" << incoming_headers.element().key() << ": " << incoming_headers.element().value() << endl;
|
||||
}
|
||||
|
||||
|
||||
sout << "</body> </html>";
|
||||
|
||||
result = sout.str();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// create an instance of our web server
|
||||
web_server our_web_server;
|
||||
|
||||
void thread()
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
// create a thread that will listen for the user to end this program
|
||||
thread_function t(thread);
|
||||
|
||||
// make it listen on port 5000
|
||||
our_web_server.set_listening_port(5000);
|
||||
our_web_server.start();
|
||||
}
|
||||
catch (exception& e)
|
||||
{
|
||||
cout << e.what() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user