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