Как прочитать входящий сетевой сокет до завершения в UWP с помощью C #? - PullRequest
0 голосов
/ 15 мая 2018

Я считаю, что столкнулся с решением для .NET, но оно не применимо, и я не собираюсь тестировать его в рамках UWP;пожалуйста, имейте в виду, что я прошу решение UWP.

private async void start()
{
    ... other stuff ...
    listener.ConnectionReceived += conn_received;
    ... other stuff ...
}

private async void conn_received(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
    Stream inStream = args.Socket.InputStream.AsStreamForRead();
    StreamReader reader = new StreamReader(inStream);
    string request = reader.ReadLine();
    ... other stuff ...
}

У меня нет проблем с записью ответа сокета, но проблема заключается в полном чтении входящих данных, поскольку в MSDN не было полного примера произвольного чтенияколичество неформатированных данных.

Мое приложение UWP - это очень простой REST-сервер, оно нуждается в чтении данных POST, но длина не обязательно является частью заголовка, и при этом я не могу правильно его проанализировать.

Я могу что-то вроде чтения всего пакета по чтению (размеру) с большим числом, независимо от того, является ли это приемлемым решением, я понятия не имею, хотя непосредственная проблема - это снижение производительности.Так что на самом деле это не пригодное для использования решение.

Когда я пробую .ReadTimeout или .Longth эти исключения и недоступны, поэтому я не уверен, как читать входящие сетевые данные в полном объеме.Методы чтения * читают вслепую и блокируют в конце, хотя у меня нет способа читать.

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