C语言socket编程模型

2014-11-24 10:14:48 · 作者: · 浏览: 2

一,文件结构
该模型包含几个文件,说明和功能定义如下:
mio.c 和 mio.h :这两个文件负责对mio_st结构的定义,并声明创建新的mio_st结构的方法。
mio_impl.h :模型的主要实现文件 ,触发多个操作都是从该文件触发的。
mio_select.h和mio_select.c :用于实现SELECT IO策略文件,包含一些和SELECT策略相关的宏。
mio_poll.h和mio_poll.c:同上。用于实现POLL IO策略的文件 。
mio_epoll.h mio_epoll.c:同上。用于实现EPOLL IO策略的文件 。


二,抽象IO管理结构
mio_st 结构用于对IO的管理,包括建立监听和连接,发送或者读取数据以及其它的一些数据回调。


上面结构中的mio_fd_st用于封装连接文件的描述符,如下所示:


另外封装主要的行为动作和处理回调函数指针,如下:


上面表示接受客户端连接,读取数据,写数据,关闭连接等操作的枚举类型,另一个是定义用于处理这些枚举类型所代表的动作发生时的处理函数。