8620ba438e23d3a3f571dcd3850c5c628e0f19af
[cascardo/gnio.git] / test / test-tcp-client.c
1 #include <gio/gio.h>
2 #include <gnio/gnio.h>
3
4 GMainLoop *loop;
5
6 static void
7 connect_callback (GObject *source, GAsyncResult *result, gpointer data)
8 {
9         GTcpClient *client = G_TCP_CLIENT (source);
10         GError *error = NULL;
11
12         if (!g_tcp_client_connect_finish (client, result, &error)) {
13                 g_warning (error->message);
14                 return;
15         }
16
17         g_print ("successfully connected\n");
18 }
19
20 int main (int argc, char *argv[])
21 {
22         GTcpClient *client;
23 /*      GInputStream *input;
24         GOutputStream *output;
25         gchar buffer[512] = {0};
26         gssize count;
27         GError *error = NULL;*/
28
29         g_thread_init (NULL);
30
31         g_type_init ();
32
33         loop = g_main_loop_new (NULL, FALSE);
34
35         client = g_tcp_client_new ("localhost", 80);
36
37         g_print ("connecting to www.google.com:80\n");
38
39         g_tcp_client_connect_async (client, NULL, connect_callback, NULL);
40
41         g_print ("connecting seems to have begun\n");
42 /*
43         if (!g_tcp_client_connect (client, NULL, &error)) {
44                 g_warning (error->message);
45                 return 1;
46         }
47
48         g_print ("connected!\n");
49
50         output = G_OUTPUT_STREAM (g_tcp_client_get_output_stream (client));
51
52         input = G_INPUT_STREAM (g_tcp_client_get_input_stream (client));
53
54         g_print ("writing...\n");
55
56         if ((count = g_output_stream_write (output, "GET / HTTP/1.0\r\n\r\n", 19, NULL, &error)) < 0) {
57                 g_warning (error->message);
58                 return 1;
59         }
60
61         g_print ("wrote %d bytes\n", count);
62
63         if ((count = g_input_stream_read (input, buffer, 512, NULL, &error)) < 0) {
64                 g_warning (error->message);
65                 return 1;
66         }
67
68         g_print ("read %d bytes: %s\n", count, buffer);
69
70         g_object_unref (G_OBJECT (client));
71 */
72         g_main_loop_run (loop);
73
74         return 0;
75 }