Я пишу программу. моя программа получает данные с сервера через протокол HTTP. данные будут перенаправлены сервером на мою программу. Я попытался использовать WebRequest, но получил только один сеанс данных. Как я могу сохранить соединение живым, чтобы получать данные с сервера постоянно, Любая помощь приветствуется.Как получить данные на сервере в C#?
следующие является SDK документ:
Под разрешением гостя или ADMIN, можно получить серию живых изображений (Server Push). Чтобы получить изображения, отправьте запрос на «/liveimg.cgi?serverpush=1», как показано на рисунке . 2-1-1.
Когда камера получает вышеуказанный запрос от клиента, он отправляет возврат, как показано на рисунке . 2-2.
Каждый JPEG-данные разделяются «-myboundary», а «image/jpeg» возвращается как Заголовок «Content-Type», после «--myboundary». Для заголовка Content-Length он возвращает количество байтов в --myboundary данных (исключая «--myboundary», каждый заголовок и \ r \ n в качестве разделителя). После заголовка «Content-Length» и «\ r \ n» (разделитель) будут отправлены фактические данные .
Эта передача данных будет продолжаться до тех пор, пока клиент не остановит соединение (отключить), или произойдет некоторая сетевая ошибка.
int len; строка uri = @ "http://192.168.0.2/liveimg.cgi?serverpush=1";
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri);
req.Credentials = new NetworkCredential("admin", "admin");
req.KeepAlive = true;
string line = "";
HttpWebResponse reply = (HttpWebResponse)req.GetResponse();
Stream stream = reply.GetResponseStream();
System.Diagnostics.Debug.WriteLine(reply.ContentType);
StreamReader reader = new StreamReader(stream);
do
{
line = reader.ReadLine();
System.Diagnostics.Debug.WriteLine(line);
System.Threading.Thread.Sleep(300);
} while (line.Length>0);
Проблема здесь, кажется, сервер посылает вам «несколько» ответов. То есть, многие ответы конвейерны (HTTP/1.1 featore) обратно клиенту. Это очень неясно, почему HttpWebResponse поддерживает любые конвейерные запросы любым способом, кроме чтения потока ответов и его анализа самостоятельно. Но в любом случае классы HttpWebRequest/HttpWebResponse в .NET - это место для начала, я думаю. – nos
Что относительно WebSockets? При этом сервер фактически «нажимает» на клиента. – Brady