7 connect_callback (GObject *source, GAsyncResult *result, gpointer data)
9 GTcpClient *client = G_TCP_CLIENT (source);
12 if (!g_tcp_client_connect_finish (client, result, &error)) {
13 g_warning (error->message);
17 g_print ("successfully connected\n");
20 int main (int argc, char *argv[])
23 /* GInputStream *input;
24 GOutputStream *output;
25 gchar buffer[512] = {0};
27 GError *error = NULL;*/
33 loop = g_main_loop_new (NULL, FALSE);
35 client = g_tcp_client_new ("localhost", 80);
37 g_print ("connecting to www.google.com:80\n");
39 g_tcp_client_connect_async (client, NULL, connect_callback, NULL);
41 g_print ("connecting seems to have begun\n");
43 if (!g_tcp_client_connect (client, NULL, &error)) {
44 g_warning (error->message);
48 g_print ("connected!\n");
50 output = G_OUTPUT_STREAM (g_tcp_client_get_output_stream (client));
52 input = G_INPUT_STREAM (g_tcp_client_get_input_stream (client));
54 g_print ("writing...\n");
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);
61 g_print ("wrote %d bytes\n", count);
63 if ((count = g_input_stream_read (input, buffer, 512, NULL, &error)) < 0) {
64 g_warning (error->message);
68 g_print ("read %d bytes: %s\n", count, buffer);
70 g_object_unref (G_OBJECT (client));
72 g_main_loop_run (loop);