毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

对等网络图像传输软件设计(四)

作者: 浏览:712次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:对等网络图像传输软件设计(四),论文范文关键词:对等网络图像传输软件设计(四)
对等网络图像传输软件设计(四)毕业论文范文介绍开始:

  __asm
  {
   MOV  ECX,dwLen1          //将位图数据长度赋给32位寄存器ECX
   SUB  ECX,dwBitMapHeader1 //减去位图头部数据长度
   SHR  ECX,2               //计数器除以4,判断时以双字为单位
   MOV  EDX,dwBitMapHeader1 //将位图头部数据长度赋给32位寄存器EDX
   MOV  ESI,pDIBitmap1      //将位图数据存放地址赋给源变址寄存器
   ADD  ESI,EDX             //移动指针跳过位图头部
   MOV  EDI,pDIB1           //将位图数据存放地址赋给目的变址寄存器
   ADD  EDI,EDX              //移动指针跳过位图头部
   REP  CMPSD                //重复比较,每次比较一个双字的数据
   JNZ  SetFlagRegion1       //不为0时,跳转到SetFlagRegion1,设置变量
   MOV  fChange1,FALSE       //给标志标量赋FALSE,表示未变化
   JMP  ExitRegion1          //跳转到ExitRegion1,执行退出
   SetFlagRegion1:
   MOV  fChange1,TRUE        //给标志标量赋TRUE,表示数据已变化
   ExitRegion1:
  }
  //设置变化状态
  pGdiNode->Gdi.fChange = fChange1; //设置位图改变标志
4.3.4 数据压缩模块设计
 在软件的图像压缩模块设计时,基于屏幕图像的特征分析和压缩编码的特点,选取了霍夫曼压缩编码和游程编码两种编码方式,从而提高数据压缩的综合效果。RLE压缩编码适用于计算机生成的图像,对减少图像文件的存储空间非常有效。图像中具有相同颜色的图像块越大,图像块数目越少,获得的压缩比也就越高。而屏幕图像一般情况下,拥有大片相同的背景颜色,使用RLE非常合适,为了补救RLE编码的不足,需要和其他的压缩编码技术联合应用。因为串长度并非等概率分布,所以在实现数据压缩时,配合霍夫曼编码压缩方法。实现代码如下: 
 pTempDIB = (char *)malloc(pGdiNode->Gdi.dwCompress * 3 + 4);
 pGdiNode->Gdi.pDIBCompress = (char *)malloc(pGdiNode->Gdi.dwCompress * 3 + 4);
 // Run Length 编码图像
 dwCompLen= RunLengthEncode(pGdiNode->Gdi.pDIBChange,
 pGdiNode->Gdi.dwCompress,pTempDIB);
 // 生成霍夫曼字节树的字典
 wTreeSize=HuffmanDictionary(pTempDIB,dwCompLen,&dwByteTree[0],&dwCodes[0]);
 // 使用霍夫曼压缩+Run Length编码的图像
 dwSendLen=HuffmanCompress(pTempDIB,dwCompLen,wTreeSize,&dwByteTree[0],&dwCodes[0],pGdiNode->Gdi.pDIBCompress);
4.3.5 信息模块设计
 消息处理模块是远程控制软件中的不可缺少的重要组成部分,实现软件的远程控制功能原理类似于Windows程序设计采用消息响应和处理的模式。
 服务器与客户机的相互通信,是通过发送固定格式的信息完成的。客户端发送消息,服务器端接收并响应消息。服务器端在接收到了客户端发来的消息之后,对消息的格式进行判断,分析是常规消息还是鼠标键盘的消息,将消息解析后,发送到各自的消息队列中,等待响应。程序设计时服务器端有专门的解析函数来处理。常规的消息都带有固定的格式头,如刷新消息是以REFRESH 开头的字符串。断开连接消息是以DISCONNECT为固定的头部。在服务器端接收到这样的消息之后,可以立即判断并响应执行消息。还有一些特殊消息,如鼠标、键盘的消息,在实现对远程计算机的控制时,必不可少,其发送的数据量不是很大,但是发送和接收的频率较高。程序使用消息队列存储接收到的消息,另外除了鼠标、键盘消息的动作消息外还需传输一些其他信息,如鼠标当前的坐标位置信息以及键盘的特殊键被按下等信息等。它们都作为消息的重要参数进行传输,服务端通过调用鼠标处理事件和键盘处理事件执行。客户端发送的其他一些消息如表4.1所示。
 表4.1 客户端发出的请求列表
请求 含义 请求 含义
CONNECT 建立双方通信连接 UNLOCK 对计算机解锁
DISCONNECT 断开双方通信连接 WM_KD 键盘按键被按下
RESOLUTION 发送当前分辨率 WM_KU 键盘按键被弹起
GIRD 发送网格划分方案 WM_MM 鼠标移动
REFERSH 请求刷新页面 WM_LBD 鼠标左键按下
MESSAGE 发送的文字消息 WM_LBU 鼠标左键弹起
VIEW 视图方式访问 WM_LBK 鼠标左键双击
REBOOT 重起计算机 WM_RBD 鼠标右键按下
LOGOFF 注销计算机 WM_RBU 鼠标右键弹起
SHUTDOWN 关闭计算机 WM_RBK 鼠标右键双击
LOCK 锁定计算机  
 
4.4客户端模块设计
4.4.1 屏幕图像显示模块设计
 客户端接收服务器端发来的图像数据,首先对图像进行解压缩,还原为原来的图像数据。在内存环境中创建兼容的设备描述表,将所有的位图数据在内存中整合为一个完整的图片,用于在客户端屏幕显示。屏幕图像显示流程如图4.5所示。
 具体在软件实现中,循环遍历整个结点链表,在内存设备环境中将一个一个的网格图像数据拼合成完整的屏幕图像,实现图像的分割-传输-拼合-显示的过程。
while (pNode)
{
  if (pNode->Gdi.fDIBitmap)
 {  //将设备无关位图绘制到设备相关位图中(DIB->DDB),用于屏幕显示
 StretchDIBits(m_hMemDC,pNode->Gdi.iWidth1,pNode->Gdi.iHeight1,       pNode->Gdi.lpBitmapIH->biWidth,pNode->Gdi.lpBitmapIH->biHeight,0,0,
pNode->Gdi.lpBitmapIH->biWidth,pNode->Gdi.lpBitmapIH->biHeight,  (LPBYTE)pNode->Gdi.lpBitmapIH+(pNode->Gdi.lpBitmapIH->biSize+(1<< pNode->Gdi.lpBitmapIH->biBitCount) * sizeof(RGBQUAD)),     (LPBITMAPINFO)pNode->Gdi.lpBitmapIH,DIB_RGB_COLORS,SRCCOPY);
  }
  pNode = pNode->pNext;//移动指针到下一个结点位置
}
BitBlt(hDC,0,0,iScreenWidth,iScreenHeight,m_hMemDC,iHScrollPos,-iVScrollPos
 ,SRCCOPY); //将内存设备环境的位图拷贝到窗口,用于显示
4.4.2 通信模块设计
 客户端的套接字的创建和连接相对于服务器端来说较为简单。如图4.3所示,只需要创建套接字,然后根据等到的IP地址连接目标计算机,从而请求连接该计算机。在服务器端接受了连接请求后,两台计算机之间便可以相互通信发送数据信息。创建Socket的过程以及连接目标计算机的代码如下:
 //创建一个流式套接口
 sClient = WSASocket(AF_INET,SOCK_STREAM,IPPROTO_IP,NULL,0,SOCK_STREAM);
 //初始化IP地址结构
 server.sin_family = AF_INET;//定义协议簇
 server.sin_port = htons(port);//使用约定的端口号
 server.sin_addr.s_addr = inet_addr(szIP);//获取连接服务器的IP地址
    //连接服务器端
 if (connect(sClient,(struct sockaddr *)&server,sizeof(server)) == SOCKET_ERROR)
 {
  memset(szString,'\0',sizeof(szString));
  sprintf(szString,"Connect() failed: %d",WSAGetLastError());
 //显示最近的错误信息
  MessageBox(NULL,szString,"Client Error",MB_OK);
  return 1;
 }
4.4.3 信息模块设计
 当客户端程序与服务器端程序建立了连接后,得到服务器端计算机的当前屏幕,在本机程序窗口中显示。当鼠标在显示窗口出现时,客户端程序会根据当前鼠标的坐标位置换算出在远程计算机屏幕上的坐标,并将鼠标的一举一动记录下来,如鼠标单击、双击或者移动等动作,并把消息发送到远程计算机。服务器端程序根据接收来得鼠标位置信息,结合鼠标位置等参数信息,然后响应并执行消息,实现远程控制。举例实现代码如下。
//获取鼠标双击消息,并将鼠标消息、位置参数和标志信息一起发送出去
void CMainWnd::OnLButtonDblClk(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{ if (fConnected)
  { x += iHScrollPos;
   y += (-1 * iVScrollPos);
   memset(szMouseMessage,'\0',sizeof(szMouseMessage));
   sprintf(szMouseMessage,"WM_LBK;%d;%d;%d;0;\0",x,y,keyFlags);
   SendCommand(m_hWnd,1,szMouseMessage);//发送消息函数
  }
}
 该段代码实现的功能是获取鼠标左键双击的消息,获取鼠标的当前位置以及是否有功能键。程序将信息以字符串"WM_LBK;%d;%d;%d;0;\0"的方式传输给服务器端来响应。鼠标其它功能如左键单击、右键单击和鼠标移动等动作,其实现原理也基本相同。
 键盘的操作只有两种操作,即键盘按键被按下和按键弹起,实现代码如下:
 // 处理键按下的消息
 void CMainWnd::OnKeyDown(HWND hWnd,UINT vk,BOOL fDown,int cRepeat,UINT flags)
 { if (fConnected)
  { memset(szMouseMessage,'\0',sizeof(szMouseMessage));
   sprintf(szMouseMessage,"WM_KD;%d;%d;%d;%d;\0",vk,fDown,cRepeat,flags);
   SendCommand(m_hWnd,1,szMouseMessage);
  }
 }
 // 处理键弹起的消息
 void CMainWnd::OnKeyUp(HWND hWnd,UINT vk,BOOL fDown,int cRepeat,UINT flags)
 { if (fConnected)
  { memset(szMouseMessage,'\0',sizeof(szMouseMessage));
   sprintf(szMouseMessage,"WM_KU;%d;%d;%d;%d;\0",vk,fDown,cRepeat,flags);
   SendCommand(m_hWnd,1,szMouseMessage);
  }
 }
4.4.4 图像保存模块设计

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5


以上为本篇毕业论文范文对等网络图像传输软件设计(四)的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:基于VB和Access的电信人事管理系.. 下一篇:网络多媒体资源管理信息系统的开发

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有