我想在向套接字写入新数据之前读取当前正在等待套接字的所有数据。
WinRT中的读取方法都是异步的,所以我不能简单地while
直到套接字为空。
由于我确实想丢弃套接字上的数据,因此我不想使用读取器,而是直接从套接字读取数据IInputStream
插座的。
像这样的伪代码:
function emptySocket(inputStream, timeout, buffer) {
if (!buffer) {
buffer = new Windows.Storage.Streams.Buffer(4096);
}
WinJS.Promise.timeout(timeout, inputStream.readAsync(buffer, 4096, Windows.Storage.Streams.InputStreamOptions.partial)
.then(function(buffer) {
if (buffer.length === 0) return;
emptySocket(inputStream, timeout, buffer);
}), function (error) {
return;
});
}
当套接字上不再有任何内容时,超时会中断等待操作。Windows.Storage.Streams.InputStreamOptions.partial
如果套接字上没有任何内容,则似乎不会返回。
顺便说一句:有什么区别Windows.Storage.Streams.InputStreamOptions.partial
and Windows.Storage.Streams.InputStreamOptions.readAhead
?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)