图3 传输流程图
4.3 屏幕控制
4.3.1 影响屏幕传输的因素
图象格式影响传输数据的大小位图文件有多种文件格式,如:BMP、JPG、PIC等,每种格式都有自己的方法对象素数据进行编码并给出此种格式所要求的一些附加信息[12]。
网络协议的选择影响传输数据的质量,UDP被描述为不可靠的、无连接和面向消息的,所以当程序采用某种算法时,为了保证算法的准确性,就有必要采用TCP协议进行数据传输[13]。
4.3.2 操作步骤
屏幕控制实际上是一种客户机/服务器程序,服务器程序安装在被控制的计算机端,客户端安装在控制端,客户端发送命令,服务器端接受命令并执行相应的截屏操作。本文来自辣)文!论(文@网,
毕业论文 www.751com.cn 加7位QQ324'9114找源文
实现的流程和主要步骤控制端通过 TCP 协议向被控端发送截取屏幕的命令,被控端收到命令后自动截取自己的屏幕,然后将形成的图片文件数据发送给控制端,控制端将收到的图片进行显示[14]。实现远程动态屏幕捕获功能包括以下四个主要步骤:
(1)通过 Winsock 控件在两端建立基于 TCP协议的连接;
(2)被控端接收命令并截取屏幕;
(3)被控端向控制端发送图片数据;
(4)控制端接收数据并进行显示。
4.3.3 代码实现
首先在被控端创建一个 Winsock控件,命名为SerSock,由于被控端的数量较多,因此需要在控制端设置一个关于 Winsock控件的动态数组,用于连接各个被控端,数组名称为ClitSock。然后将控制端的ClitSock以及被控端的 SerSock的通信协议设置为 TCP。控制端调用ClitSock的listen 方法进行侦听,查看是否有被控端发出连接请求,如果有,控制端动态的增加 Winsock 控件通过来接受每一个被控端的连接请求。通过 ConnectionRequest 事件调用 Accept 方法建立连接后,两端计算机可以发送、接收对方数据。如果要发送数据,需调用 SendData 方法。当接收到数据时,会发生 DataArrival事件,调用 DataArrival事件中的 GetData 方法就可以获得对方传送的数据。被控端接收到截取屏幕的命令以后,需要调用相应的 API 函数来实现自动截屏但由于接收方的 ClitSock控件一般是 4K至 8K调用一次 DataArrival子程,故被控端将分块进行发送,接收方确认后再发下一块[15]。`
5. 项目总结
此次系统完成了电子教室系统的基本功能,其重点是通信和传输功能。由于许多知识的不熟练,在一些具体功能上有许多不足,同时最难的功能也没法实现。
系统的优点有:
(1)系统界面简洁、简单;
(2)系统的控件可用性控制得当,不会出现随意点击报错的问题;
(3)代码结构清晰,并有注释。
系统的缺点有:
(1)在运行聊天模块的信息通信时,如果一端发送完信息,想继续发送,会有bug出现;
(2)在文件传输时,偶尔会因地址不对,出现系统崩溃,只能重新开始。
我会尽力丰富知识,在完善好所有的漏洞。不过这个项目是个人的第一个项目,从当初的无从下手,到完成这个项目,多少有点成就感,但更重要的从这个项目的练习中,学会了一些学习方法,而且在这段时间里体验了无数失败,从解决不了细小问题的苦恼到问题最终解决的喜悦,一直伴随着整个设计过程。整个设计过程是不断学习,不断发现问题、分析问题、解决问题的过程。使我受益良多,设计期间有许多的感触、想法、经验,教训,对以后的学习、工作有很大的益处。
上一页 [1] [2] [3] [4] [5] 下一页
Socket电子教室系统研究与应用 第4页下载如图片无法显示或论文不完整,请联系qq752018766