///QSocketNotifier文档翻译/
QSocketNotifier 类提供了对文件的监控活动的支持。
QSocketNotifier 类使Qt的事件循环和文件描述器的事件循环结合起来成为可能。文件描述器的动作可以被Qt的主事件循环( QCoreApplication::exec() )检测到。
一旦你打开了一个设备使用低级的api(通常基于特定平台), 你可以创建一个socket notifier 来监控文件描述器。这个socket notifier可能是默认的,也就是说不管基于何种平台发生了一个socket event 他都会发出activated()信号。连接这个activated()信号到你槽,你可以据此来处理你的socket notifier根据不同的事件类型的相对应的反应。
这有三种类型的socket notifies: 读,写,和异常。这个类型描述是由Type的枚举类型定义的,而且这个类型在构造socket notifier的时候必须指定。在构造之后它可以通过使用这个type()函数来决定。
注意:如果你需要监控包括同已文件描述器的读和写的行为,你就必须创建两个socket notifiers。同样注意,不能在同一socket上面安装两个相同类型(读,写,异常)的socket notifiers。
setEnabled()函数可以允许你禁用或者启用这个socket notifier. 一般的建议是显示的启用或者禁用socket notifier,尤其是write notifiers。 如果禁用的notifier, 则会忽略socket events(也就是同样的效果不会创建socket notifier)。使用isEnable()可以决定notifier当前的状态。
最终,如果你使用socket()函数将会获取到socket的标识符。当然这个类也被叫做QSocketNotifier, 用来获取设备类型的socket的通知通常是使用他,而不是使用socket. QTcpSocket和QUdpSocket通过信号来提供通知,因此没有必要在他们使用时再使用QSocketNotifer来获取通知。
QSocketNotifier::QSocketNotifier