2012-11-18 03:48:42 +08:00
|
|
|
// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
|
|
|
|
/*
|
|
|
|
|
|
|
|
This is an example illustrating the use of the iosockstream object from the
|
|
|
|
dlib C++ Library.
|
|
|
|
|
|
|
|
This program simply connects to www.google.com at port 80 and requests the
|
|
|
|
main Google web page. It then prints what it gets back from Google to the
|
|
|
|
screen.
|
|
|
|
|
|
|
|
|
|
|
|
For those of you curious about HTTP check out the excellent introduction at
|
|
|
|
http://www.jmarshall.com/easy/http/
|
|
|
|
*/
|
|
|
|
|
2012-12-08 22:32:13 +08:00
|
|
|
#include <dlib/iosockstream.h>
|
2012-11-18 03:48:42 +08:00
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
using namespace dlib;
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
// Connect to Google's web server which listens on port 80. If this
|
|
|
|
// fails it will throw a dlib::socket_error exception.
|
|
|
|
iosockstream stream("www.google.com:80");
|
|
|
|
|
|
|
|
// At this point, we can use stream the same way we would use any other
|
2014-02-23 05:07:17 +08:00
|
|
|
// C++ iostream object. So to test it out, let's make a HTTP GET request
|
2012-11-18 03:48:42 +08:00
|
|
|
// for the main Google page.
|
|
|
|
stream << "GET / HTTP/1.0\r\n\r\n";
|
|
|
|
|
|
|
|
// Here we print each character we get back one at a time.
|
|
|
|
while (stream.peek() != EOF)
|
|
|
|
{
|
2012-11-18 03:55:49 +08:00
|
|
|
cout << (char)stream.get();
|
2012-11-18 03:48:42 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (exception& e)
|
|
|
|
{
|
|
|
|
cout << e.what() << endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|