#include <gnet.h>
#include <stdio.h>
+void client_event (GConn* conn, GConnEvent* event, gpointer data)
+{
+ GConn* server;
+ server = (GConn*) data;
+ switch (event->type)
+ {
+ case GNET_CONN_CONNECT:
+ fprintf (stderr, "Connected to localhost:80.\n");
+ gnet_conn_read (conn);
+ break;
+ case GNET_CONN_READ:
+ if (server == NULL)
+ {
+ fprintf (stderr, "Establishing connection to localhost:80.\n");
+ server = gnet_conn_new ("127.0.0.1", 80, client_event, (gpointer) conn);
+ gnet_conn_connect (server);
+ gnet_conn_set_callback (conn, client_event, (gpointer) server);
+ }
+ gnet_conn_write (server, event->buffer, event->length);
+ gnet_conn_read (conn);
+ break;
+ case GNET_CONN_WRITE:
+ break;
+ default:
+ fprintf (stderr, "Received an unexpected client event.\n");
+ break;
+ }
+}
+
void new_client (GServer* server, GConn* conn, gpointer data)
{
+ if (conn == NULL)
+ {
+ fprintf (stderr, "Server has received an error event.\n");
+ return;
+ }
+ gnet_conn_set_callback (conn, client_event, NULL);
+ gnet_conn_read (conn);
}
int main ()