Re: Networking Application
- From: Joe Shaw <joe helixcode com>
- To: Chris Nystrom x8269 <cnystrom talmid sps mot com>
- Cc: gnome-devel-list gnome org
- Subject: Re: Networking Application
- Date: Mon, 6 Nov 2000 15:11:09 -0500 (EST)
On Mon, 6 Nov 2000, Chris Nystrom x8269 wrote:
> It looks like I need to use a GLib IO Channel and add it to the main event
> loop. Are there any examples of how to use one? Can someone tell me of an
> application that uses one?
It's pretty simple. First, create a GIOChannel:
int fd;
GIOChannel *channel;
channel = g_io_channel_unix_new(fd);
Then, attach a watch to it:
g_io_add_watch(channel, G_IO_IN, read_data, NULL);
G_IO_IN is the condition that you want to watch on. It means that the
callback (in this case "read_data") will be called anytime there is data
to read from the channel. The NULL is the standard user data that you pass
to callbacks.
And finally, write the callback function:
static gboolean read_data(GIOChannel *channel, GIOCondition cond,
gpointer data)
{
GIOError err;
char buffer[4096];
int bytes;
err = g_io_channel_read(channel, buf, 4096, &bytes);
...
}
Hope this helps.
Joe
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]