summaryrefslogtreecommitdiffstats
path: root/ml/dlib/examples/iosockstream_ex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/examples/iosockstream_ex.cpp')
-rw-r--r--ml/dlib/examples/iosockstream_ex.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/ml/dlib/examples/iosockstream_ex.cpp b/ml/dlib/examples/iosockstream_ex.cpp
new file mode 100644
index 00000000..8a5dbbb2
--- /dev/null
+++ b/ml/dlib/examples/iosockstream_ex.cpp
@@ -0,0 +1,47 @@
+// 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/
+*/
+
+#include <dlib/iosockstream.h>
+#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
+ // C++ iostream object. So to test it out, let's make a HTTP GET request
+ // 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)
+ {
+ cout << (char)stream.get();
+ }
+ }
+ catch (exception& e)
+ {
+ cout << e.what() << endl;
+ }
+}
+
+