=?UTF-8?B?W+axguWKqV3lhbPkuo5HTGli572R57uc57yW56iL?=



大家好

最近尝试用GLib进行网络编程,查阅了GLib是否有对于网络的抽象(包括Socket)。

google得到的文档主要是GIO。新的GIO合并了GNIO,提供了对网络的抽象,如GSocket,GInetAddress等底层对象,以及GSocketClient,GSocketConnection,GSocketService等高层抽象。

但是,新的GIO目前还在unstable状态,将在glib-2.22中发布。目前稳定的glib-2.20,这个版本虽然允许打开uri,但是完全屏蔽了网络,无法对协议(IPV4/V6,
TCP/UDP)进行控制。

我知道的是,目前,GLib对网络流、文件流的抽象是GIOChannel。这种实现更底层,GIOChannel的创建对unix和win32有区别,这就失去了GLib的跨平台的优势,同样,也是以“流”的形式抽象的,不适合udp
socket等应用。

限于代码阅读量小,我不知道,目前GNOME的诸多网络相关的程序,使用什么框架实现网络功能?比如直接操作socket,但是从逻辑上,GLib应该对操作系统的socket有一层封装。

我的问题是,目前(我是说现在,或不久的过去,不是将来)大多数GNOME程序用何种形式实现网络通信呢?

wks
2009年7月26日星期日


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]