如何发送一个http命令得到网络摄像机的图像文件

kantonwang2007 2007-12-12 04:18:22
局域网内的一个网络摄像机,可以发送cgi命令得到最新的jpeg文件,vb.net已经实现了,但是现在要用vc++2005来实现,请教大家,最好能给出代码,谢谢!

vb.net的例子:
Public p_wc As New System.Net.WebClient()
Dim sURL As String

sURL = "http://192.160.11.181/getjpeg.cgi?size=HalfD1&quality=high&id=YWRtaW46YWRtaW4="
p_wc.DownloadFile(sURL, "c:\test.jpeg")
...全文
232 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kantonwang2007 2007-12-12
  • 打赏
  • 举报
回复
解决了,pFile->QueryInfo(HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_CONTENT_LENGTH, &lsize, &lpdwBufferLength);

自问自答,结帖!
kantonwang2007 2007-12-12
  • 打赏
  • 举报
回复
CInternetSession *pSession = new CInternetSession("test", 1, INTERNET_OPEN_TYPE_PRECONFIG );

这个效果一样。
kantonwang2007 2007-12-12
  • 打赏
  • 举报
回复
尝试了一个方法,不过遇到问题:

CString str = "http://192.160.11.181/getjpeg.cgi?size=HalfD1&quality=high&id=YWRtaW46YWRtaW4=";
CInternetSession *pSession = new CInternetSession( );
CHttpFile *pFile = (CHttpFile*)pSession->OpenURL(str, 1, INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD);

CString strtr = pFile->GetFileURL();
int nLength = pFile->GetLength();

char *pBuf = new char[nLength];
pFile->Read(pBuf, nLength);
pFile->Close();

CFile file;
if(file.Open("d:\\test.jpeg", CFile::modeCreate|CFile::modeWrite))
{
file.Write(pBuf, nLength);
file.Close();
}

可以连接,也能存成jpeg文件,不过文件的长度不对,而且是固定的8192(pFile->GetLength()),实际的size在18,19k左右。
怀疑是不是什么缓存没有设定,最大就是8192,请大家指点!

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧