- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TCP和UDP溷合并用的远程控制软件的设计与实现.
学 号 24082401933
网路应用程序(论文)
题目: 应用TCP和UDP混合并用的远程控制软件的设计与实现
作 者 武祥瑞 E-mail 1023098422@
系 别 机电系 届 别 2008 届
指导教师 王惠宇0 引言 2
1 远程网络通信的实现 2
2 网络控制技术的实现 3
2.1Winsock控件的初始化 3
2.2 远程关机功能实现 4
2.3 远程网络监控的实现 4
网络应用程序设计clittcp sock.LocalPort=9000
同样也需要在被控端进行设置:
svrudp sock.Protocol=sckUDPPr otocol
svrudp sock.RemoteHost=控制端机器的名称或IP
svrudp sock.RemotePort=8001//访问远程控制端的端口
svrudp sock.Bind 8000
svrtcp sock.RemoteHost=控制端机器的名称或IP
svrtcp sock.RemotePort=9000
远程关机功能实现
被控端与控制端通信的过程中,控制端通过clitudp sock发送各种命令消息 ,被控端通过svrudp sock的DataArrival(数据接收)事件进行判断命令的种类 ,从而执行相应的操作。如果是关机或者重启等命令,被控端执行相应的程序既可。控制端发送命令:
clitudp sock.SendData″SHUTDOWN″//发送关机命令
clitudp sock.SendData″REBOOT″//发送重启命令
clitudp sock.SendData″LOG OFF″//发送注销命令
被控端关机、重启以及注销等命令的执行需要API函数ExitWindowsEx来实现:
Exit WindowsEx flag, dwreversed
参数 flag = EWX_LOGOFF或者 0 //注销
flag = EWX_SHUTDOWN或者 1 //关机
flag = EWX_REBOOT或者 2 //重启
flag = EWX_FORCE或者 4 //强制操作
在被控端执行以上这些操作,首先需要获得对系统的操作权限,部分代码如下:
Private Sub EnablePrivilege( )//获得系统操作权限
DimhProc As Long
DimhToken As Long
DimmLUID As LUID
DimmPriv As TOKEN_PRIVILEGES
DimmNewPriv As TOKEN_PRIVILEGES
hProc=GetCurrentProcess( )
OpenProcessToken hProc,TOKEN_ADJUST_PRIVILEGES + TOKEN_QUE2RY,hToken
LookupPrivilegeValue″″ , ″SeShutdownPrivilege″,mLUID
mPriv.PrivilegeCount=1
mPriv.Privileges(0).Attributes=SE_PRIVILEGE_ENABLED
mPriv.Privileges(0).pLuid =mLUID
AdjustTokenPrivileges hToken,False,mPriv,4+ (12 * mPriv.PrivilegeCount) ,mNewPriv, 4 + (12 * mNewPriv . PrivilegeCount)
以上代码中用到的API函数需要提前声明。
远程网络监控的实现
如果被控端 svrudp sock接收到的是截取屏幕的命令 ,同样需要调用相应的 API函数来实现自动截屏,然后将截取的图像拷贝到柯达公司的Imgedit控件中,进行压缩,转变为JPG格式的图像并保存。本文采用柯达公司的Imgedit控件,该控件能将截取的屏幕图像压缩至40k左右,使用svrtcp sock控件可以一次传输出去。但由于接收方的clittcp sock控件一般是4K至8K调用一次DataArrival子程,故被控端将分块进行发送,接收方确认后再发下一块。
(1) 被控端屏幕的截取
对于屏幕图像的截取,可以调用Windows API函数keybd_event来模拟键盘上的 PrintScreen键。截图的部分源代码如下:
Public Sub s_cap ( )//捕捉屏幕图像
Call keybd_event ( vbKe
文档评论(0)