Я пишу TCP-сервер как приложение UWP в C# и хочу опросить список клиентов для проверки сообщений. Список клиентов - это список StreamSockets.
В обычном C# я могу просто проверить NetworkStream, чтобы увидеть, доступны ли данные. Есть ли способ донг это в UWP? В настоящее время я использую:
mClient.InputStream.ReadAsync(streamBuffer, MessageHeader.HEADER_LENGTH, InputStreamOptions.None).AsTask().Wait(//Some amount of ms);
Это плохо, так как для многих клиентов задержка станет слишком высокой. Кажется также, что существует условие гонки: если общее количество операций чтения не выполнено, задача все равно не может быть выполнена.
Я ищу что-то семантически идентичное этому:
if (mNetworkStream.DataAvailable)
{
mClient.Client.Receive(mBuffer, 1, SocketFlags.Peek);
Возможно ли это?