将远程控制应用于教学中,已成为目前计算机化教学的重要手段。一定有很多的网虫想了解这种网络教学方式的编程原理吧。在此我们就以一个简单的远程控制程序作为示例,说明这种网络编程的基本原理。本程序以Delphi编程为例。
Delphi中有两类控件可以实现上面的目的。一类是控制方使用ClientSocket,受控方使用ServerSocket(均在Internet页),另一类是双方都使用NMUDP(在FastNet页)。我们知道网络传输都是不可靠的,也就是说传输的数据有可能丢失,而这两类控件的区别是前者使用TCP(Transfer Control Protocol,传输控制协议)。TCP协议是面向连接,每次双方建立连接(或断开)时需经过三次握手,较为耗时,但数据传输可靠;而后者使用UDP(User Datagram Protocol,用户报文协议),它是面向无连接的,发出数据不需对方确认,这样速度比TCP快,但数据有可能丢失,因此它不可靠。由于控制所需传送的数据量不大,而且需要较高的可靠性,因此一般使用前者,程序说明如下:
第一步,开始控制方程序,在其中加入clientsocket控件,取名control,设置host属性为受控机ip地址,port属性为1234(端口可以随便设置,但不要与一些默认端口重复,如80等)。
第二步,在FormCreate事件中加入代码control.open; //打开与受控机的通信
第三步,加入个Button,设置caption为“重新启动”,并在ButtonClick事件中加入代码control.Socket.SendText('reboot');//通知受控机重新启动。这样就完成了控制方的工作了。
第四步,开始受控方的程序,在其中加入serversocket控件,取名undercontrol,设置port属性为1234(与控制方的端口一致),active属性为true;
第五步,在undercontrol的OnclientRead事件中加入代码if Socket.ReceiveText='reboot' then
ExitWindowsEx(EWX_REBOOT,2); //重启的API函数
这样就完成了代码的工作,然后编译这两个程序生成两个.exe文件分别放在两台机器上运行(记得先运行Win98下的受控机程序),在控制机按下“重新启动”的Button(按钮),受控机就重新启动了。远程控制机器重启成功实现。
由于篇幅的限制,以上忽略了很多细节的东西(如出错处理),而且只能完成远程控制的一种功能,有兴趣者可在此基础上完善,可实现网络软件管理中的其它功能,如鼠标、键盘锁定、关机、抓取屏幕、文件操作、视频传输等,在此就不多介绍了,有兴趣者可以上网多查看些这方面的资料。打开: http://www.qqread.com/delphi/e217753.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Java编程开发手册 (8196篇文章)
- 远程桌面应用 (128篇文章)
- delphi三十六之加密篇 (543次浏览)
- 用Delphi做一个OpenGL控件 (313次浏览)
- 用Delphi制作录音程序 (312次浏览)
- 用Delphi编写点对点传文件程序 (309次浏览)
- Delphi笔试题 (155次浏览)
- 将鼠标锁定在一定范围 (151次浏览)
- Delphi设计PhotoShop型弹出菜单 (144次浏览)
- 用DELPHI 设 计 屏 幕 保 护 程 序 (118次浏览)
- 用Delphi7设计FTP上传软件 (115次浏览)
- 在Delphi中自动检测、建立数据库别名和表格 (111次浏览)



