Опрос соединения StreamSocket с сервером UWP - PullRequest
0 голосов
/ 20 апреля 2020

Я пишу 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);

Возможно ли это?

1 Ответ

0 голосов
/ 22 апреля 2020

Хорошо, так что немного больше контекста к этому. Я использую Unity и не осознавал, что с момента появления скриптового бэкэнда IL2 CPP System. Net .Sockets можно использовать в UWP. Это означает, что мне не нужно использовать какие-либо ограничивающие оболочки сокетов UWP.

Спасибо @jdweng, я начал реализовывать вариант с несколькими слушателями, пока не обнаружил, что могу использовать свой существующий. Net осуществление!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...