- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
局域网软件运行监控系统源程序vc
附录 服务器端
ClientSock.cpp
void CClientSock::setdlg(CSreenServerDlg *d,int cid,int plen)
{ dlg=d;
id=cid;
pklen=plen
//数据包长度为固定,处理比较方便,一般为1000到65000之间.
bufoffset=0;
pkbuf=new char[plen*2];}
void CClientSock::OnReceive(int nErrorCode) {
// TODO: Add your specialized code here and/or call the base class
dlg-myRecvData(this);
CSocket::OnReceive(nErrorCode);}
void CClientSock::GetPackage(char *buf)
//接收一个长度为pklen的完整数据包
{ do{ recvlen=Receive(pkbuf+bufoffset,pklen,0);
if(recvlen0)
{ bufoffset+=recvlen; }
}while(bufoffsetpklen);
//有可能(%1可能性)只接收到部分数据,就再接收一次
memcpy(buf,pkbuf,pklen);
bufoffset=bufoffset-pklen;
if(bufoffset0)//有%99的可能性,bufoffset=0
memcpy(pkbuf,pkbuf+pklen,bufoffset); }
void CClientSock::SendCommandData(int type, char *buf, int len)
{ NETPACKAGE pack;
pack.type=type;
pack.len=len;
memset(pack.buf,7,pklen-8);
memcpy(pack.buf,buf,len);
Send((char*)pack,pklen,0);}
CSreenServerDlg .CPP
void CSreenServerDlg::OnTimer(UINT nIDEvent) {
// TODO: Add your message handler code here and/or call default
if(pclient!=NULL){
CapSreen();
SentSreen(hBitmap,pclient);}
CDialog::OnTimer(nIDEvent);}
void CSreenServerDlg::SentSreen(HBITMAP hBitmap, CClientSock *pc){
HDC hDC =::CreateDC(DISPLAY,NULL,NULL,NULL);
int iBits = ::GetDeviceCaps(hDC, BITSPIXEL) * ::GetDeviceCaps(hDC, PLANES);//当前分辨率下每个像素所占字节数
::DeleteDC(hDC);
WORD wBitCount; //位图中每个像素所占字节数
if (iBits = 1)
wBitCount = 1;
else if (iBits = 4)
wBitCount = 4;
else if (iBits = 8)
wBitCount = 8;
else if (iBits = 24)
wBitCount = 24;
else
wBitCount = iBits;
DWORD dwPaletteSize=0; //调色板大小, 位图中像素字节大小
if (wBitCount = 8)
dwPaletteSize = (1 wBitCount) * sizeof(RGBQUAD);
BITMAP bm; //位图属性结构
::GetObject(hBitmap, sizeof(bm), (LPSTR)bm);
BITMAPINFOHEADER bi,bi1; //位图信息头结构
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = bm.bmWidth;
文档评论(0)