So there's some recent efforts at creating a GObject-based IO stream, based loosely on some discussions from a year ago. Strangely, both me and a person halfway around the world started asking the participants for comments on the same idea within 24 hours of each other. Since I don't believe in coincidences, this is a big encouragement.
GNetwork ties in to provide the socket() stream object, servers, DNS and service query stuff. Best of all, the whole chain-o-objects thing can be done properly using this framework (somewhat like System.IO.Stream). It's different from other things in GNOME (GTK+ is similar), but System.IO.Stream is a nice starting point -- one that can be simplified and improved with GObject signals and properties.