Mercurial > code
annotate modules/net/examples/blocking-connect.cpp @ 512:0002b8da93dc
Net: rework a lot, going to stabilization soon
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Apr 2016 17:34:01 +0200 |
parents | |
children |
rev | line source |
---|---|
512
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * blocking-connect.cpp -- example of blocking connect |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Options: |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * - WITH_HOST (string literal), the host to try (default: "malikania.fr") |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * - WITH_PORT (int), the port to use (default: 80) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * - WITH_TIMEOUT (int), number of seconds before giving up (default: 30) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * - WITH_SSL (bool), true to test with SSL (default: false) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 */ |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 #include <iostream> |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 #if !defined(WITH_HOST) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # define WITH_HOST "malikania.fr" |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 #endif |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 #if !defined(WITH_PORT) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 # define WITH_PORT 80 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #endif |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #if !defined(WITH_TIMEOUT) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 # define WITH_TIMEOUT 30 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #endif |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include "elapsed-timer.h" |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include "sockets.h" |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 int main() |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 { |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 #if defined(WITH_SSL) |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 net::SocketTls<net::address::Ipv4> socket; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 #else |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 net::SocketTcp<net::address::Ipv4> socket; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 #endif |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 try { |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 std::cout << "Trying to connect to " << WITH_HOST << ":" << WITH_PORT << std::endl; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 socket.connect(net::address::Ip(WITH_HOST, WITH_PORT)); |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 } catch (const net::Error &error) { |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 std::cerr << "error: " << error.what() << std::endl; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 std::exit(1); |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 } |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 std::cout << "Successfully connected!" << std::endl; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 return 0; |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 } |
0002b8da93dc
Net: rework a lot, going to stabilization soon
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 |