我正在写一个程序。我的程序通过 HTTP 协议从服务器接收数据。数据将由服务器推送到我的程序。我尝试使用 WebRequest,但只收到了一个会话数据。我怎样才能保持连接活跃,以连续接收来自服务器的数据,感谢任何帮助。
以下是SDK文档:
在 GUEST 或 ADMIN 的授权下,可以获得系列直播图像(服务器推送)。要获取图像,请将请求发送到“/liveimg.cgi?serverpush=1”,如图所示。2-1-1。
当摄像头收到客户端的上述请求后,如图所示发送返回。2-2。
每个 JPEG 数据由“--myboundary”分隔,“image/jpeg”在“--myboundary”之后作为“Content-Type”标头返回。对于“Content-Length”标头,它返回 --myboundary 数据中的字节数(不包括“--myboundary”、每个标头和 \r\n 作为分隔符)。在“Content-Length”标头和“\r\n”(分隔符)之后,将发送实际数据。
这种数据传输将一直持续到客户端停止连接(断开连接),或者出现一些网络错误。
国际化; 字符串 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);