【发布时间】:2018-12-13 06:33:05
【问题描述】:
我有一个使用 StreamSocket 的小型 UWP 应用。通过使用 socket.InputStream.AsStreamForRead() 方法访问套接字。
这适用于几乎所有大小的传入数据(10 字节到 6,000 字节)。但是当使用带有缓冲区大小的重载时,套接字会在收到更多数据时挂起。因此,如果缓冲区设置为 4096,则不再接收 6000 字节。即使以 10 字节的块读取数据,它也不起作用。 ReadAsync 方法永远挂起。
我不确定这是否是一个错误。我希望我仍然可以收到数据。如果不是,我需要知道该缓冲区的默认大小或行为。
示例代码:
StreamSocket socket = InitSomewhere();
var readStream = socket.InputStream.AsStreamForRead(500);
var buffer = new byte[100]
readStream.ReadAsync(buffer, 0, 100) // Hangs here if received > 500!
有人有想法吗?
最好的问候,克里斯坦
【问题讨论】:
标签: c# .net uwp stream network-programming