知识大全 远程控制编程揭密
Posted 知
篇首语:有山必有路,有水必有渡。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 远程控制编程揭密相关的知识,希望对你有一定的参考价值。
将远程控制应用于教学中 已成为目前计算机化教学的重要手段 一定有很多的网虫想了解这种网络教学方式的编程原理吧 在此我们就以一个简单的远程控制程序作为示例 说明这种网络编程的基本原理 本程序以Delphi编程为例
其实该程序的工作机制很简单 受控方运行一个程序 用于侦听端口并接收数据包 而主控方通过端口给受控方的端口发送数据包 根据这个原理 我们编写两个程序 一个是控制方的 而另一个是受控方的 把这两个程序运行在两台不同的机器上 受控机等待控制机发送过来的数据然后执行相应的操作(如本例中的重启)
Delphi中有两类控件可以实现上面的目的 一类是控制方使用ClientSocket 受控方使用ServerSocket(均在Internet页) 另一类是双方都使用NMUDP(在FastNet页) 我们知道网络传输都是不可靠的 也就是说传输的数据有可能丢失 而这两类控件的区别是前者使用TCP(Transfer Control Protocol 传输控制协议) TCP协议是面向连接 每次双方建立连接(或断开)时需经过三次握手 较为耗时 但数据传输可靠 而后者使用UDP(User Datagram Protocol 用户报文协议) 它是面向无连接的 发出数据不需对方确认 这样速度比TCP快 但数据有可能丢失 因此它不可靠 由于控制所需传送的数据量不大 而且需要较高的可靠性 因此一般使用前者 程序说明如下
第一步 开始控制方程序 在其中加入clientsocket控件 取名control 设置host属性为受控机ip地址 port属性为 (端口可以随便设置 但不要与一些默认端口重复 如 等)
第二步 在FormCreate事件中加入代码control open; //打开与受控机的通信
第三步 加入个Button 设置caption为 重新启动 并在ButtonClick事件中加入代码control Socket SendText( reboot ) //通知受控机重新启动 这样就完成了控制方的工作了
第四步 开始受控方的程序 在其中加入serversocket控件 取名undercontrol 设置port属性为 (与控制方的端口一致) active属性为true
第五步 在undercontrol的OnclientRead事件中加入代码if Socket ReceiveText= reboot then
ExitWindowsEx(EWX_REBOOT ); //重启的API函数
这样就完成了代码的工作 然后编译这两个程序生成两个 exe文件分别放在两台机器上运行(记得先运行Win 下的受控机程序) 在控制机按下 重新启动 的Button(按钮) 受控机就重新启动了 远程控制机器重启成功实现
cha138/Article/program/Delphi/201311/25023相关参考