0
我遇到了UWP问题。我试图绑定一个StreamSocketListener作为一个小型Web服务器,但是在20个左右的连接之后,ReadAsync函数挂起,应用程序最终关闭而没有错误。UWP Socket.InputStream.ReadAsync挂起
这里是我使用的代码:
private const uint bufferSize = 1024;
private int port = 9000;
public async void Start()
{
StreamSocketListener listener = new StreamSocketListener();
listener.ConnectionReceived += async (sender, args) =>
{
string request = null;
using (IInputStream input = args.Socket.InputStream)
{
byte[] data = new byte[bufferSize];
IBuffer buffer = data.AsBuffer();
uint bytesRead = bufferSize;
while (bytesRead == bufferSize)
{
IBuffer result = await input.ReadAsync(buffer, bufferSize, InputStreamOptions.Partial);
request += Encoding.ASCII.GetString(result.ToArray());
bytesRead = buffer.Length;
}
processRequest(getPath(request), args.Socket.OutputStream);
}
};
await listener.BindServiceNameAsync(port.ToString());
}