- 主题:句柄监听问题
Windows 下用CreateFile生成的HANDLE,有办法知道是否有数据写入吗?不想一直去读。用QSocketNotifier监听不到
发自「今日水木 on iPhone 7 Plus」
--
FROM 112.224.75.*
QSocketNotifier 用的是 winsock 的那一套。没法处理文件 handle.
你需要的是 windows 的 overlapped io.
一般说来,直接读就好了,别整这些。windows overlapped io 很容易出错。
【 在 jesong (jesong) 的大作中提到: 】
: Windows 下用CreateFile生成的HANDLE,有办法知道是否有数据写入吗?不想一直去读。用QSocketNotifier监听不到
: 发自「今日水木 on iPhone 7 Plus」
--
FROM 110.81.42.*
请问Windows 下的overlapped io是指哪些?因为不知道什么时候会上来数据,没法直接读,也不想起个线程一直去读,感觉Windows 下应该也会有相应的函数用来监听句柄
【 在 hgoldfish 的大作中提到: 】
:
: QSocketNotifier 用的是 winsock 的那一套。没法处理文件 handle.
:
: 你需要的是 windows 的 overlapped io.
:
: 一般说来,直接读就好了,别整这些。windows overlapped io 很容易出错。
: --
: ..................
发自「今日水木 on iPhone 7 Plus」
--
FROM 112.224.75.*
有啊。。就是我说的 overlapped io,
你拿着我给的关键词去 msdn 里面搜一搜。
都是做 win32api 开发的必备知识。
也可以用 iocp,但 iocp 要复杂很多。
github 上面有很多关于这方面的类库。不用自己去接触底层 API。
事实上,我就一直想要山寨一个。。
【 在 jesong (jesong) 的大作中提到: 】
: 请问Windows 下的overlapped io是指哪些?因为不知道什么时候会上来数据,没法直接读,也不想起个线程一直去读,感觉Windows 下应该也会有相应的函数用来监听句柄
: 发自「今日水木 on iPhone 7 Plus」
--
修改:hgoldfish FROM 110.81.42.*
FROM 110.81.42.*
感谢,我查一下
【 在 hgoldfish 的大作中提到: 】
:
: 有啊。。就是我说的 overlapped io,
:
: 你拿着我给的关键词去 msdn 里面搜一搜。
:
: 都是做 win32api 开发的必备知识。
:
: 也可以用 iocp,但 iocp 要复杂很多。
:
: github 上面有很多关于这方面的类库。不用
: ..................
发自「今日水木 on iPhone 7 Plus」
--
FROM 60.209.120.*
我刚想说这不是IOCP的使用场景吗,内核帮你把数据读好了。。。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 有啊。。就是我说的 overlapped io,
: 你拿着我给的关键词去 msdn 里面搜一搜。
: 都是做 win32api 开发的必备知识。
: ...................
--
FROM 58.34.122.*